如何从一个函数内部设置一个类变量到另一个函数中?
变量.py
class A:
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
def seta(self):
def afunction():
self.a = 4
afunction()
def geta(self):
return self.a
运行.py
cA = A()
print cA.a
cA.seta()
print cA.a
print cA.geta()
python 运行.py
1
1
1
为什么 a 不等于 4,我怎样才能使它等于 4?
编辑:
谢谢大家 - 抱歉,我现在才看到。我不小心被我名字中的一个 _ 误导了……所以我的范围实际上没问题。
最佳答案
问题是有多个 self
变量。传递给内部函数的参数会覆盖外部函数的范围。
您可以通过从内部函数中删除 self
参数并确保以某种方式调用该函数来解决这个问题。
class A:
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
def seta(self):
def afunction(): # no self here
self.a = 4
afunction() # have to call the function
def geta(self):
return self.a
关于类内嵌套函数内的 Python 作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368297/