[英]python OOP, accessing attributes
当我尝试从NewOne类访问属性'self.b'时,为什么会出现“ AttributeError:'NewOne'对象没有属性'self.b'”的错误消息。 我的意思是就在那儿。
class NewOne(object):
def __init__(self):
self.b = 'Cat' # this is what i want to access
def child(self):
self.c = 'kitten'
return self.c
class FatherClass(object):
def __init__(self, a):
self.a = a
def son(self):
self.i = 'I and my father'
return self.i
def father(self):
self.x = 'are one'
return self.x
def father_son(self):
u = NewOne()
k = getattr(u, 'self.b') #why does it tell me NewOne has no self.b attr
return self.a, k()
getattr不用于访问方法吗? 为什么叫getattr而不叫getmeth之类? 谢谢
替换为:
k = getattr(u, 'self.b')
这样:
k = getattr(u, 'b')
甚至更好:
k = u.b
你应该写
k = getattr(u, 'b')
或更好
k = u.b
代替。
该属性的名称是b
,而不是self.b
通常,您可以通过obj.attr
访问属性-仅当属性名称是动态的(即在编写代码时未知,但在运行时计算getattr()
时才需要getattr()
形式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.