在功能之间共享变量

时间:2019-07-24 23:04:36

标签: python-3.x variables

我想在两个函数之间共享变量:从最底层到最顶层

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

2 个答案:

答案 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()