【发布时间】:2020-08-13 15:47:40
【问题描述】:
我有这样一段代码:
def A():
def B():
c.append("hello")
d = 8
c = []
d = 0
B()
print(c, d)
我得到这个输出:
["hello", 0]
我想让函数 B 从函数 A 到达 c 和 d。它到达c,因为它是list,但我也想从B 到达d。有没有简单的方法可以做到这一点?
【问题讨论】:
-
您可以从内部函数返回值,并在外部函数中使用它。您还可以查看变量范围。
-
是的,但我想尽可能简单地做到这一点,这样非本地更容易
-
@Just_Me 只是不容易理解或维护。特别是当您的函数大于两行并且您使用多个变量执行此操作时。
-
您也可以使用一个类并为该类设置
c和d属性。然后任何方法都可以更新c和d,而无需任何“魔术”。