У меня есть проект, который организован что-то вроде
project/
__init__.py
builder.py
component/
__init__.py
В builder.py
у меня есть класс под названием Builder, который имеет несколько атрибутов класса для реализации шаблона Borg. Проблема возникает, когда я пытаюсь импортировать Builder в component/__init__.py
и вносить изменения в атрибуты класса. Кажется, что любые изменения, которые я делаю в атрибутах класса в пакете, отменяются, когда функция возвращается.
ОБНОВЛЕНИЕ: Вот простой пример того, что происходит.
builder.py
class Builder(object):
attribute = True
import component
print Builder.attribute
компонент / ___ ___ INIT. Ру
from project.builder import Builder
Builder.attribute = False
Выход:
False
True
Судя по тому, что напечатаны две строки, я бы предположил, что код в builder.py
выполняется дважды, что сбрасывает значение attribute
в True.