Skip to main content
 首页 » 编程设计

python OOP,访问属性

2025年05月04日13dudu

当我尝试从 NewOne 类访问属性“self.b”时,为什么会收到“AttributeError: 'NewOne' object has no attribute '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