Мне просто интересно, почему переменная, определяемая __init__
, недоступна из класса? Должен ли он выполняться во время создания экземпляра, чтобы его доступный извне?переменная область __init__
>>> class a:
... data = {}
...
>>> a.data
{}
>>> class a:
... def __init__(self):
... self.data = {}
...
>>> a.data
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: class a has no attribute 'data'
Каков цвет концепции шаров вообще? –
Чтобы уменьшить путаницу, вы всегда должны указывать имена классов в верхнем регистре (CamelCase) по [PEP 8] (http://www.python.org/dev/peps/pep-0008/). Здесь вы видите, что 'A' - это только сам класс; '__init__' вызывается во время' a = A() ', после чего' a.data' фактически существует, как противоположность 'A.data'. – glglgl