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と呼ばれgetmethか何かではないのですか? おかげ
+1:「さらに良い...」 –
ありがとう、ありがとう、ありがとう!属性とメソッドの名前が同じ場合はどうなりますか? – kassold
属性とメソッドに同じ名前を付けることはできません。より正確には、メソッド*は属性であり、呼び出すことができるものです。 –