gpt4 book ai didi

python - 如何在Python中访问嵌套函数的变量?

转载 作者:行者123 更新时间:2023-11-30 22:05:14 25 4
gpt4 key购买 nike

我需要访问在嵌套函数中设置的变量。我正在从另一个线程读取这个变量数据。在不违反任何范围的情况下获取数据的最佳方法是什么?

这是代码片段,

class main(object):
def sub_fun(self):
def inner_fun(self):
self.var = 10
inner_fun(self)

p = main().sub_fun()

现在如何访问pvar属性?

最佳答案

class main(object):
def sub_fun(self):
def inner_fun(self):
self.var = 10
p = main()

您无法访问嵌套函数的变量,因为它是一个闭包,并且只能由直接父级访问。 var 只能由 inner_fun 访问。请参阅下面的不同实现。

class main(object):
def outer_function(self):

def inner_function(self):
self.x = 10
return self.x

out = inner_function(self) # Accessing the inner function
return out

p = main()
q = p.outer_function()
print(q)

如果需要类对象或父函数访问子嵌套函数内的变量,则应通过返回该变量将其提升到外部作用域。否则,变量的范围将仅驻留在所谓的子嵌套函数中。

关于python - 如何在Python中访问嵌套函数的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com