Frage

Ich bin neu in Python. Ich habe versucht, eine einfache Funktion in einer Klasse zu definieren und auszuführen.

Kann jemand bitte sagen Sie mir, was in meinem Code falsch:

class A :
    def m1(name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)


>>> a = A()
>>> a.m1('X',12,'XXXX')
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a.m1('X',12,'XXXX')

Ich erhalte unten Fehler
Typeerror: m1 () nimmt genau 3 Positionsargumente (4 gegeben)

War es hilfreich?

Lösung

Instanzmethoden nehmen Instanz als erstes Argument:

class A :
    def m1(self, name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)

Sie können auch verwenden @staticmethod Dekorateur statische Funktion zu erstellen:

class A :
    @staticmethod
    def m1(name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)

Andere Tipps

Der erste Parameter ist immer das Objekt selbst.

class A :
    def m1(self, name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)

Nach Konvention Methoden in einer Klasse Instanz einen Objektverweis als erstes Argument erhalten, mit dem Namen self.

>>> class A:
...     def m1(self,name,age,address):
...         print('Name -->',name)
...         print('Age -->',age)
...         print('Address -->',address)
...         
>>> a=A()
>>> a.m1('X',12,'XXXX')
('Name -->', 'X')
('Age -->', 12)
('Address -->', 'XXXX')
>>> 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top