質問

私は、Pythonに新しいです。私はクラスの簡単な関数を定義して実行しようとしていた。

誰もが私のコードで間違っているものを私に教えてくださいすることができます:

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')

私は、エラーの下に取得しています
の例外TypeErrorは:M1()は正確に3位置の引数を取る(4所与)

役に立ちましたか?

解決

インスタンスメソッドは、最初の引数としてインスタンスをとります

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

また、静的な関数を作成するために @staticmethodデコレータに使用することができます

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

他のヒント

最初のパラメータは、常にオブジェクト自体である。

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

は、慣例により、クラスインスタンスのメソッドは、名前の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')
>>> 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top