使调用函数中声明的变量在被调用函数中可用

时间:2018-01-30 22:09:26

标签: python-3.x

我有两个功能。他们不是任何阶级的一部分。只是个别功能。 函数f1调用f2。我想要做的是在f2中打印f1中声明的变量。

我怎样才能做到这一点?

def f1():
    a = 10
    b = 20
    f2()

def f2():
    print(a)
    print(b)

2 个答案:

答案 0 :(得分:1)

UIStepper

def f1(): a = 10 b = 20 f2(locals()) def f2(dic): for key in dic: print(key, '=', dic[key]) f1() 返回字典中的局部变量和值。 在locals()内拨打f2会抓取f1的本地人并将其作为传递 用于f1处理的参数dic

答案 1 :(得分:0)

您可以先在函数外部定义变量,然后使用第二个示例中的全局修改器。在这个简单的情况下,将变量传递给f2()(例1)可能更有意义。

如果您正在寻找的话,还可以查看Access a function variable outside the function without using `global`

您通常也不希望使用代码来检查this example中调用者函数的内容。 在任何情况下,您的代码都无法达到ab尚未存在的状态。

示例1

def f1():
    a = 10
    b = 20
    f2(a, b)

def f2(a, b):
    print(a)
    print(b)

正如评论中所述,这不是你想要的,所以这也是你有这种可能性的原因:

示例2

a=5
b=5

def f1():
    global a
    global b
    a = 10
    b = 20
    f2()

def f2():
    print(a)
    print(b)

调用f1()将打印10和20.