Я новичок в Python и не уверен, что это можно сделать. Как вы можете видеть, я даже не мог составить хороший заголовок для вопроса. Скажем, у меня есть 2 класса,
class A:
self.B = None
class B:
def c(self):
pass
def d(self):
pass
Теперь, если я сделаю экземпляр класса,
a = A()
a.b = B()
Я хочу что-то вроде,
print a.c()
И это должно внутренне вызвать:
a.b.c()
Имейте A.__getattr__()
поймайте доступ к ac
и A.__getattr__()
вместо него вернуть abc
.
class A:
self.B = None
Это не скомпилируется. К чему собственно относится? Возможно, вы имели в виду следующее?
class A:
def __init__(self):
self.b = None
a = A()
a.b = B()
Как сказал @Ignacio, используйте getattr или наследуйте A от B следующим образом:
class A(B):
...
def
выключенным __init__
.
Зачем вам это нужно? Наследуем от B, если он будет пониматься как имеющий методы B.
class A(B):