Quiero entender los argumentos del constructor __init__
en Python.__init__ y argumentos en Python
class Num:
def __init__(self,num):
self.n = num
def getn(self):
return self.n
def getone():
return 1
myObj = Num(3)
print myObj.getn()
RESULTADO: 3
que llamo el getone()
método:
print myObj.getone()
RESULTADO: Error 'getone()' no tiene argumentos (1given).
Así que reemplazar:
def getone():
return 1
con
def getone(self):
return 1
RESULTADO: 1 Esto está bien.
Pero el método getone()
no necesita argumentos.
¿Debo usar un argumento sin sentido?
no tienen sentido. cada método de una clase siempre tiene un argumento implícito, la instancia. En C++ es lo mismo, pero nunca lo ves en la lista de argumentos porque mágicamente aparece en los arbustos del bosque de hadas.Python es 'Explícito es mejor que implícito'. –
Puede usar los decoradores de @staticmethod y @classmethod para hacer lo que quiera. Por favor mira el ejemplo en mi respuesta. – stderr