Python多个文件变量和函数

时间:2016-06-17 08:57:45

标签: python

我试图将我的python代码拆分成几个文件:

file1.py

from file2 import *

var1 = 7
func_file2()

file2.py

def func_file2():
    var2 = var1

所以它说:

NameError: global name 'var1' is not defined

我该如何解决?

我尝试在file2中导入file1。

3 个答案:

答案 0 :(得分:1)

var1file1中定义,但您在file2中引用它。您可以将var1移至file2以修复错误。

<强> file1.py

from file2 import *    
func_file2()

<强> file2.py

def func_file2():
    var1 = 7
    var2 = var1

您可能想首先在file1导入file2以定义var1,但这会导致循环导入(file1file2互相参考)。

答案 1 :(得分:0)

func_file2没有变量var1的可见性,因为当它被定义时,var1不存在于任何范围内,因此闭包不起作用。

当你在python中编写模块时,遵循内聚的原则,这意味着如果模块中的函数使用来自另一个模块的变量,则可能是错误的。

答案 2 :(得分:0)

我建议您不要使用全局变量,但是如果您希望它以现在的方式工作,您可以执行以下操作:

first file
global var1 
var1 = 7

second file
from first_file_name import var1 #this will make your var1 accessible from the second file

我希望它有所帮助。