我需要在另一个文件的函数中声明一个变量。要求是我不能从setvar()
函数中调用变量。
set.py
:
def setvar():
global x
x = 100
def getvar():
return x
if __name__ == '__main__':
setvar()
getvar()
get.py
:
import set
y = set.getvar()
print(y)
错误:
NameError: name 'x' is not defined
为什么x
没有定义?当我打印它时getvar
,x
定义了。我怎样才能改变它以使其工作?
为什么 x 没有定义?
原因是因为你的线路:
if __name__ == '__main__':
如您所知,该行表示仅if
在程序直接运行时才运行语句中的代码,而不是导入到另一个程序中。由于您只是将set.py
程序导入到get.py
程序中setvar()
,因此从未调用过该函数,因此x
从未定义过该变量。
要求是我不能从 setvar 函数调用变量。
那不是问题!您需要做的就是setvar()
在if __name__ == '__main__':
块外调用该函数一次,问题将得到解决:
set.py
:
def setvar():
global x
x = 100
def getvar():
return x
setvar()
if __name__ == '__main__':
getvar()
get.py
:
import set
y = set.getvar()
print(y)
输出:
100
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句