我有两个功能。他们不是任何阶级的一部分。只是个别功能。
函数f1
调用f2
。我想要做的是在f2
中打印f1
中声明的变量。
我怎样才能做到这一点?
def f1():
a = 10
b = 20
f2()
def f2():
print(a)
print(b)
答案 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中调用者函数的内容。 在任何情况下,您的代码都无法达到a
和b
尚未存在的状态。
示例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.