Как я могу использовать functools.singledispatch с методами экземпляра?

Python 3.4добавленной возможность определения перегрузки функций статическими методами. По сути, это пример из документации:

from functools import singledispatch


class TestClass(object):
    @singledispatch
    def test_method(arg, verbose=False):
        if verbose:
            print("Let me just say,", end=" ")

        print(arg)

    @test_method.register(int)
    def _(arg):
        print("Strength in numbers, eh?", end=" ")
        print(arg)

    @test_method.register(list)
    def _(arg):
        print("Enumerate this:")

        for i, elem in enumerate(arg):
            print(i, elem)

if __name__ == '__main__':
    TestClass.test_method(55555)
    TestClass.test_method([33, 22, 11])

В чистом видеsingledispatch Реализация полагается на первый аргумент для определения типа, поэтому сложно распространить эту функциональность на методы экземпляра.

У кого-нибудь есть совет, как использовать (или jerry-rig) эту функциональность, чтобы заставить ее работать с методами экземпляра?

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

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