Если я использую __getattr__
и вызываю a.b.c
, где a
- это экземпляр моего класса, тогда я получаю "b"
внутри __getattr__
, что означает, что мне также нужна рекурсия для отмены доступа к c
. Но если рекурсия, я не буду знать, какой вызов является последним, поэтому я не буду знать, когда возвращать окончательное значение, т.е. не могу различить guish между a.b
и (a.b).c
Как преодолеть?
Как получить всю цепочку "b", "c" в переопределенной операции?
Например, A - это мой класс, тогда предположим, что я хочу быть:
a = A()
print(a.b) # prints "hello"
print(a.b.c) # prints "hi"
et c.
Т.е. я хочу переопределить каждую комбинацию самостоятельно.