Je l'ai vérifié car il y avait plusieurs choses
python
# -*- coding: utf-8 -*-
class Hoge(object):
def __init__(self):
self.__foo = 'foo'
self._bar = 'bar'
hoge = Hoge()
# AttributeError: 'Hoge' object has no attribute '__foo'
# print hoge.__foo
print hoge._bar
print hoge._Hoge__foo
print hoge.__dict__
Résultat d'exécution
bar foo {'_Hoge__foo': 'foo', '_bar': 'bar'}
En quelque sorte, Hoge .__ foo est une propriété de type privé. On dit que la propriété avec deux unscos se comportera comme private car la mandaring de nom est effectuée.
Il semble que masquer des variables ne soit pas l'objectif principal, donc je vais le mettre dans ma tête pour le moment.
Gardez à l'esprit que les règles de difficulté sont avant tout de prévenir les accidents, il est toujours possible d'accéder et de modifier de manière convaincante des variables considérées comme privées. est. Cette spécification est même utile dans des situations spéciales telles que les débogueurs.
http://docs.python.jp/2/tutorial/classes.html#tut-private
Recommended Posts