在python中连接两个源文件?

时间:2015-08-17 13:02:43

标签: python

我试图将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未声明"或类似的东西。

1 个答案:

答案 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中的全局变量?