【Python】エラーまとめ

TypeError: [関数名] takes 0 positional arguments but 1 was given

原因

エラー内容

[関数名]は0個の引数を取るが、1つ引数が与えられた

エラー例

class HogeClass:
    def hoge():
        print("ほげ〜")

    def call_hoge():
        HogeClass.hoge()


hoge = HogeClass()
hoge.call_hoge()
# TypeError: call_hoge() takes 0 positional arguments but 1 was given

解決策

解説

クラスメソッドを呼び出すと、そのメソッドの第一引数には必ずselfが渡されるようです。(Pythonの仕様)

元のメソッドの方では引数を受け取るような処理を記載していないのでエラーになるわけですね。
なので引数にselfを受け取るように処理を修正します。

対応例

class HogeClass:
    def hoge():
        print("ほげ〜")

    def call_hoge(self):
        HogeClass.hoge()


hoge = HogeClass()
hoge.call_hoge()
# ほげ〜

Leave a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Scroll to Top