Sto cercando di capire i metodi di classe. Da quello che ho letto sembra che per i metodi di classe dobbiamo passare cls come primo argomento durante la definizione (simile ai metodi di istanza in cui passiamo il self come primo argomento). Ma vedo che anche se passo il sé come primo argomento per un metodo di classe funziona. Qualcuno può spiegarmi come funziona?Posso passare self come primo argomento per i metodi di classe in python
Ho visto qualche utilizzo in cui hanno definito la classe come un metodo di classe, ma passano ancora come il primo argomento invece di cls. Sto cercando di capire l'utilizzo.
#!/usr/bin/python
class A(object):
def foo(self,x):
print "executing foo(%s,%s)"%(self,x)
@classmethod
def class_foo(self,x):
print "executing class_foo(%s,%s)"%(self,x)
>>> A.class_foo(2)
executing class_foo(<class '__main__.A'>,2)
>>>
A proposito, non è un metodo statico. Un metodo statico è decorato con '@ staticmethod' ed è diverso da un metodo" normale "(che in genere è chiamato metodo di istanza, penso). – Ffisegydd