我试图将this分成一些较小的文件,但由于复杂的class-global_variable-function关系,它对我来说真的很难。有没有办法连接两个文件,就像它们是python中的一个文件一样?
对不起,如果不清楚,我添加问题的例子:
#\a.py
def print_foo():
global foo
print foo
#\main.py
from a import *
def initialize_values():
global foo, bar
foo='abc'
bar=123
initialize_values()
print_foo()
这导致错误"全局变量foo未声明"或类似的东西。
答案 0 :(得分:0)
Python没有真正的全局变量,只有模块级全局变量。也就是说,在a.print_foo
中,语句global foo
引用变量a.foo
。在main.initialize_values
中,global foo
指的是main.foo
。当您致电print_foo
时,它会尝试打印a.foo
,但该名称从未定义过。
你可以写main.py
import a
def initialize_values():
global bar # keep in mind, this is main.bar
a.foo='abc'
bar=123
initialize_values()
a.print_foo()
但这提出了一个设计问题:为什么要从另一个模块初始化模块a
中的全局变量?