我是python的新手,我有一个问题。
我想将所有变量保存在一个文件中,将方法保存在另一个文件中。
这就是我的想法:
file1.py
:
import calculations
a = 3
b = 2
c = subtraction()
print c
calculations.py
:
def subtraction():
answer = a-b
return answer
calculations.py
中的方法必须在file1.py
中使用,他们需要使用file1.py
中所述的“全局”变量。
我的逻辑在哪里失败?
答案 0 :(得分:3)
这不是Python中全局变量的工作原理。全局仅限于它们所定义的模块。
您必须将变量作为参数传递给subtraction()
而不是:
def subtraction(a, b):
return a - b
和
c = subtraction(a, b)
请注意,您导入了模块,因此您需要将该函数作为该模块的属性引用:
c = calculations.subtraction(a, b)
或者,只将函数导入模块命名空间:
from calculations import subtraction
答案 1 :(得分:3)
当定义函数时,编译器将其“全局”范围指定为它所定义的模块的范围。即使在另一个模块中存在对该函数的引用,该范围也不会改变,因为该函数本身是不变。