我想在两个函数之间共享变量:从最底层到最顶层
def number_function():
print(number_1)
print(number_2)
number_function()
def test():
number_1=10
number_2=20
当我尝试运行代码时,出现此错误
NameError: name 'number1' is not defined
答案 0 :(得分:0)
如Mark Meyer所指出的那样,变量的作用域范围是函数,并且如果不调用函数test
,则test()
中的变量将不存在。
如果您确实运行test()
并且不想返回变量并将其传递给其他函数,则需要将变量定义为global
,因此它们不限于函数范围
def test():
global number_1
global number_2
number_1=10
number_2=20
def number_function():
print(number_1)
print(number_2)
test()
number_function()
Out[1]:
10
20
在函数之间共享变量的另一种方法是简单地使用类:
Class yourEnv(object):
def __init__(self):
self.number_1 = 10
self.number_2 = 20
def number_function(self):
print(self.number_1)
print(self.number_2)
yourEnv().number_function()
Out[2]
10
20
答案 1 :(得分:0)
id可以反向执行吗?例如:
def test():
print(number_1)
print(number_2)
def number_function():
global number_1
global number_2
number_1=10
number_2=20
test()
number_function()