Как заставить 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

Ответы на вопрос(5)

Ваш ответ на вопрос