TypeError: method() takes 1 positional argument but 2 were given

Diese Fehlermeldung gibt an, dass eine Methode oder eine Funktion mit dem Namen "method" erwartet, dass ein Argument übergeben wird, aber es wurde mit zwei Argumenten aufgerufen. Ein Beispiel dafür, wie dieser Fehler auftreten kann, ist:

class MyClass:
    def method(self, arg1):
        print(arg1)

obj = MyClass()
obj.method("hello", "world")  # gibt TypeError aus

In diesem Beispiel ist die Methode so definiert, dass sie ein Argument arg1 entgegennimmt, aber wir rufen die Methode mit zwei Argumenten "hello" und "world" auf. Das führt zu einem TypeError.

Es kann behoben werden, indem nur ein Argument an die Methode übergeben wird:

obj.method("hello")  # gibt "hello" aus

Oder indem die Methode so geändert wird, dass sie zwei Argumente akzeptiert:

class MyClass:
    def method(self, arg1, arg2):
        print(arg1, arg2)

obj = MyClass()
obj.method("hello", "world")  # gibt "hello world" aus