Является ли плохой практикой инициализация объектов в модуле, в коде модуля?
in Module.py
:
class _Foo(object):
def __init__(self):
self.x = 'Foo'
Foo = _Foo()
Чем в пользовательском коде, вы можете:
>>> from Module import Foo
>>> print Foo.x
'Foo'
>>>
... без необходимости инициализировать класс Foo в пользовательском коде. Конечно, это полезно, только если вам не нужны аргументы для инициализации объекта.
Есть ли причина не делать этого?
@staticmethod
и переменные класса, если вам нужен только один экземпляр - person JBernardo   schedule 13.09.2011staticmethod
и переменные класса, вы можете использоватьclassmethod
и переменные класса. Однако это плохой способ создать синглтон. - person agf   schedule 13.09.2011staticmethod
s вместо использования автоматически переданной ссылки на класс изclassmethod
s. - person agf   schedule 13.09.2011