是否可以使用getattr
/setattr
访问类函数中的变量?
下面的例子。假设我有一个类,它有两个方法,func1
和func2
两者都有
其中定义了不同类型的变量count
。有没有办法
getattr
在func2中访问局部变量count
?
实际上,我
我想要的func2
中的一些变量(在func1
中也有不同的定义)
为了循环使用getattr
,我希望通过使用
通过变量名的循环。
class A(object):
def __init__(self):
pass
def func1(self):
count = {"A": 1, "B":2}
def func2(self):
count = [1, 2]
mean = [10, 20]
for attr in ("count", "mean"):
xattr = getattr(self, attr) ! What do I put in here in place of "self"?
xattr.append(99)
不,
getattr()
和setattr()
只处理对象的属性。您试图访问的是局部变量。您可以使用^{} 访问本地名称字典:
但最好直接列出名单,这里不需要经历这样的麻烦:
这已经在Stackoverflow上得到了回答。。。简而言之:
编辑:您还可以直接查找并更新由
globals()
返回的dict,例如,这大致相当于上面的getattr()
:相关问题 更多 >
编程相关推荐