メソッドの最初のパラメータは、メソッドが呼び出されたインスタンスです。 printName()不足している1つの必要な位置引数:「名前」 は、私は私がこの"self"を使用する場合、Pythonには位置指定の引数が必要です
class A:
def printName(self, name):
print(name)
A.printName("asd")
を書くとき、私はそのエラーはTypeErrorを取得理由を理解いけません。 私は行方不明ですか?
メソッドの最初のパラメータは、メソッドが呼び出されたインスタンスです。 printName()不足している1つの必要な位置引数:「名前」 は、私は私がこの"self"を使用する場合、Pythonには位置指定の引数が必要です
class A:
def printName(self, name):
print(name)
A.printName("asd")
を書くとき、私はそのエラーはTypeErrorを取得理由を理解いけません。 私は行方不明ですか?
あなたは、クラスのインスタンスを作成し、そのインスタンス上でメソッドを呼び出す必要があります:あなたは、そのクラスのインスタンスを作成せずにprintName()
を呼び出したい場合はstaticmethod
を使用して、
class A:
def printName(self, name):
print(name)
class_instance = A()
class_instance.printName("asd")
これは働くだろう
class A:
@staticmethod
def printName(name):
print(name)
A.printName('hello')
答えをありがとう。 Pythonで静的メソッドとは何かを説明することができます、なぜそれが '自己'を必要としないのですか? あなたのコードを試しましたが、@staticmethodなしでも動作します、なぜですか? 質問量は申し訳ありませんが、私は「self」の引数がどのように働いているかを理解するのに苦労しています – akerbeltz
@erberbeltz :) ** staticmethods **はオブジェクトではなくクラスにバインドされたメソッドです。クラスインスタンスは必要ありません。 '@ staticmethod'は' staticmethod'を使用していることを示します。以前のバージョンでは、** staticmethod **の構文が異なっていました。あなただけのgoogleの詳細については、 – ksai
自己は、 'this'オブジェクトに相当します。 staticmethodはクラスにバインドされている別のインスタンスではありません。 – gout
[TypeError:必要な1つの位置引数が見つかりません: 'self'](https://stackoverflow.com/questions/17534345/typeerror-missing-1-required-positional-argument-self) –