Как заставить len () работать с разными методами на разных экземплярах класса, не изменяя класс?
Есть ли способ сделатьlen()
работать с методами экземпляра без изменения класса?
Пример моей проблемы:
>>> class A(object):
... pass
...
>>> a = A()
>>> a.__len__ = lambda: 2
>>> a.__len__()
2
>>> len(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'A' has no len()
Замечания:
разные случаиA
будет иметь разные__len__
методы прилагаетсяЯ не могу изменить классA