У меня два файла mainfile.py
и lists.py
. mainfile.py
имеет класс Foo
с методами, которые зависят от списков. Я скормлю ему несколько списков из lists.py
. Но в одном из списков из lists.py
будет элемент, который использует метод из класса Foo
в mainfile.py
. Примерно так:
# mainfile.py
import lists
list_1 = lists.list_1
list_2 = lists.list_2
class Foo:
method_1(lst1, lst2, lst3):
pass
# does stuff with those lists
method_2():
pass
# will be used on lists.py
# lists.py
import mainfile
list_1 = ['a', 'b', 'c']
list_2 = ['depending', 'on', mainfile.Foo.method2(), 'method']
Изначально делал from mainfile import Foo
. Однако я изменил его на import Foo
, как сказал ответ здесь, на SO. Но все равно не работает. При запуске mainfile.py
:
AttributeError: частично инициализированный модуль 'lists' не имеет атрибута 'list_1' (скорее всего, из-за циклического импорта)
Я попытался переместить import
в конец lists.py
, но тогда mainfile
в mainfile.Foo.method2()
не определено.
Что мне здесь делать? что-то рефакторинг? или я неправильно импортирую эти файлы?
PS Я бы сделал все в одном файле, но lists.py
в конечном итоге будет иметь много списков в нем, поэтому я бы предпочел оставить он отдельный.