>>> class Potato(object):
... def method(self, spam):
... print self, spam
...
>>> spud = Potato()
Работает:
>>> Potato.method(spud, **{'spam': 123})
<__main__.Potato object at 0x7f86cd4ee9d0> 123
Не работает:
>>> Potato.method(**{'self': spud, 'spam': 123})
# TypeError
Но почему нет? Я думал, что "я" был просто конвенцией, и в этом аргументе не было ничего особенного?