我有两个文件module.py
和main.py
在module.py
中,我有一个函数,它使用在其范围之外定义的常量。
#module.py
def add(x):
s = x + const
return s
if __name__ == '__main__':
const = 2
print(add(2))
直接运行时输出4
作为输出。
在main.py
我有:
#main.py
import module as m
const = 2
print(m.add(2))
它出错:NameError: name 'const' is not defined
有没有办法让m.add()在const
全局范围内查找main.py
?我不想将const
传递给add()
作为函数变量。
答案 0 :(得分:1)
目前尚不清楚您的实际用例是什么,但如果您希望在模块之间拥有共享变量,则需要在模块范围内定义该变量。
在一个模块中声明它:
#module.py
const = 0 # declare as global of module.py
def add(x):
s = x + const
return s
if __name__ == '__main__':
const = 3
print(add(2))
...并在另一个中引用它:
#main.py
import module as m
m.const = 3 # reference module's variable
print(m.add(2))