无法在Python submodu中赋值给全局变量

2024-09-24 22:19:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对25年的Python编程感到困惑。 为什么这个装置(压缩到最小)打印“无”?我希望“thing.implementation1.Juggernaut object at 0xblahblahblah”。这是怎么回事

main.py

import thing
thing.run()

东西/\uu init\uuuuuuuuy.py

from .implementation1 import init
from .implementation1.main import *

事情/实现1/\uu初始化.py

foo = None
class Juggernaut:
    pass
def init():
    global foo
    foo = Juggernaut()

事情/implementation1/main.py

from . import init, foo
def run():
    init()
    print(repr(foo))

Tags: runfrompyimportfooinitmaindef
1条回答
网友
1楼 · 发布于 2024-09-24 22:19:10

我已经找到了一个切实可行的解决办法,但仍然不明白它为什么有效。 将“init”函数从thing/implementation1/__init__.py移到thing/implementation1/main.py可以解决这个问题

东西/\uu init\uuuuuuuuy.py

from .implementation1.main import *

事情/实现1/\uu初始化.py

foo = None
class Juggernaut:
    pass

事情/implementation1/main.py

from . import Juggernaut
def init():
    global foo
    foo = Juggernaut()
def run():
    init()
    print(repr(foo))

相关问题 更多 >