NewOne 클래스에서 'self.b'속성에 액세스하려고하면 "AttributeError : 'NewOne'객체에 'self.b'속성이 없습니다."라는 오류 메시지가 나타나는 이유는 무엇입니까? 나는 그것이 바로 거기에 있다는 것을 의미합니다.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이라고 불리는 이유는 무엇입니까? Youe이
k = getattr(u, 'b')
이상
k = u.b
대신 작성해야 감사
+1 : "더 좋게 ..." –
감사합니다. 고마워요, 고마워요! 속성과 메소드의 이름이 같은 경우 어떻게됩니까? – kassold
속성과 메소드는 같은 이름을 가질 수 없습니다. 보다 정확하게는, 메소드 *는 속성이며, 호출 가능한 메소드입니다. –