经过25年的Python编程后,我感到困惑。 为什么将此设备(压缩到最低)打印“无”?我希望“ thing.implementation1.Juggernaut对象位于0xblahblahblah”。这是怎么回事?
main.py
import thing
thing.run()
事物/ __ init __。py
from .implementation1 import init
from .implementation1.main import *
事物/实现1 / __ init __。py
foo = None
class Juggernaut:
pass
def init():
global foo
foo = Juggernaut()
事物/实现1 / main.py
from . import init, foo
def run():
init()
print(repr(foo))
答案 0 :(得分:0)
我已经找到了一个可行的解决方案,但仍然不明白它为什么起作用。
将“ init”功能从thing/implementation1/__init__.py
移到thing/implementation1/main.py
可以解决此问题。
事物/ __ init __。py
from .implementation1.main import *
事物/实现1 / __ init __。py
foo = None
class Juggernaut:
pass
事物/实现1 / main.py
from . import Juggernaut
def init():
global foo
foo = Juggernaut()
def run():
init()
print(repr(foo))