uma função pode ser estática e não estática no python 2

Digamos que eu tenho essa classe:

class Test(object):
    def __init__(self, a):
        self.a = a

    def test(self, b):
        if isinstance(self, Test):
            return self.a + b
        else:
            return self + b

Idealmente, no meu mundo, isso seria o seguinte:

>>> Test.test(1,2)
3
>>> Test(1).test(2)
3

Agora isso não funciona porque você recebe este erro:

TypeError: unbound method test() must be called with Test instance as first argument (got int instance instead)

No python3, isso funciona bem, e tenho a suspeita de que isso é possível com um decorador no python2, mas meu foo python não é forte o suficiente para fazer com que funcione.

Torção de plotagem: Então, o que acontece quando preciso de algo quando não é chamado estaticamente.

questionAnswers(1)

yourAnswerToTheQuestion