Dlaczego nie mogę utworzyć klasy "__call__ metody statycznej przy użyciu dekoratora @staticmethod?Udekoruj __call__ za pomocą @staticmethod
class Foo(object):
@staticmethod
def bar():
return 'bar'
@staticmethod
def __call__():
return '__call__'
print Foo.bar()
print Foo()
wyjścia
bar
<__main__.Foo object at 0x7fabf93c89d0>
ale spodziewałbym go do wyjścia
bar
__call__
Dzięki! To wyjaśnia to dla mnie. Co masz na myśli przez 'Meta .__ call __()' -> 'Foo .__ new __()' -> 'Foo .__ init __()'? Czy strzałki oznaczają "połączenia"? – fragapanagos
@fragapanagos To kolejność, po której następuje Python, gdy tworzona jest klasa. Zobacz: http://ideone.com/4gxeiN –