python中是否有一种方法可以声明函数应使用外部作用域?

问题描述 投票:-1回答:1

是否有与C宏类似的功能,可让您以内联方式重用代码,而无需为该代码段创建单独的作用域?

例如:

a=3
def foo():
    a=4
foo()
print a

将打印3,但是我希望它打印4。我知道涉及类或全局dict之类的对象的解决方案,但是我正在寻找一种更原始​​的解决方案(例如,函数装饰器),该解决方案将让我直接在调用者的范围内进行更改。

非常感谢

python scope built-in
1个回答
0
投票

在这种情况下,只需使用global关键字:

a=3
def foo():
    global a
    a=4
foo()
print (a)
© www.soinside.com 2019 - 2024. All rights reserved.