Почему я получаю объект AttributeError: 'NewOne' не имеет сообщения об ошибке «self.b», когда я пытаюсь получить доступ к атрибуту «self.b» из класса NewOne. Я имею в виду, что это правильно.python OOP, доступ к атрибутам
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 или что-то еще? Благодаря
+1: «еще лучше ...» –
Спасибо, спасибо, спасибо! что произойдет, если атрибут и метод имеют одно и то же имя? – kassold
Атрибут и метод не могут иметь одно и то же имя. Точнее, метод * является * атрибутом, только одним вызываемым. –