So lösen Sie den Python-Fehler: TypeError: Das Objekt „xxx' ist nicht aufrufbar?

WBOY
Freigeben: 2023-08-19 10:00:45
Original
6777 Leute haben es durchsucht

如何解决Python报错:TypeError: 'xxx' object is not callable?

So lösen Sie den Python-Fehler: TypeError: Das Objekt „xxx“ ist nicht aufrufbar?

Im Bereich der Python-Programmierung treten häufig Fehler auf. Einer der häufigsten Fehler ist TypeError: Das Objekt „xxx“ ist nicht aufrufbar. Dieser Fehler bedeutet, dass im aktuellen Code ein Objekt verwendet wird, es jedoch als Funktion aufgerufen wird, das Objekt jedoch tatsächlich nicht aufrufbar ist. Um Ihnen zu helfen, dieses Problem besser zu verstehen und zu beheben, gehen wir auf die Ursache dieses Fehlers ein, zeigen Ihnen, wie Sie ihn identifizieren und beheben können, und zeigen Ihnen einige Codebeispiele.

Schauen wir uns zunächst ein konkretes Codebeispiel an:

class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1())  # 报错发生在这一行
Nach dem Login kopieren

Der obige Code definiert eine Klasse MyClass, die über eine Initialisierungsmethode __init__ und eine Methode print_x verfügt, die x druckt. Im Hauptprogramm haben wir zwei Objekte dieser Klasse erstellt, obj1 und obj2, und versucht, obj1 aufzurufen, aber es ist ein TypeError: „MyClass“-Objekt ist nicht aufrufbar aufgetreten.

Um diesen Fehler zu beheben, müssen wir zunächst die Fehlerursache klären. TypeError: „xxx“-Objekt ist nicht aufrufbar bedeutet normalerweise, dass wir versuchen, ein Objekt aufzurufen, das nicht aufrufbar ist. Im obigen Codebeispiel haben wir versucht, ein Objekt obj1 aufzurufen, aber dieses Objekt ist eine Instanz der Klasse MyClass und nicht für den Aufruf vorgesehen. Daher wird Python diesen Fehler auslösen.

Da wir nun die Ursache dieses Fehlers verstanden haben, besteht der nächste Schritt darin, ihn zu identifizieren und zu beheben. Es gibt mehrere häufige Situationen:

  1. Falsche Verwendung von Klasseninstanzen: Im obigen Codebeispiel versuchen wir, ein Objekt obj1 aufzurufen, aber eigentlich sollte die Methode der Klasse aufgerufen werden, zu der das Objekt gehört. Daher können wir den obigen Code in obj1.print_x() ändern.
class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

obj1.print_x()  # 输出10
Nach dem Login kopieren
  1. Fälschliche Verwechslung von Variablennamen mit Funktionsnamen: Eine weitere häufige Situation besteht darin, den Namen einer Klassenmethode mit dem Namen einer Instanzvariablen zu verwechseln, was dazu führt, dass die Instanzvariable fälschlicherweise als Funktion aufgerufen wird. Der folgende Code verursacht beispielsweise den Fehler TypeError: „int“ object is not callable.
class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1.x())  # 报错发生在这一行
Nach dem Login kopieren

Um dieses Problem zu lösen, müssen wir den Code ändern, um den Variablennamen und den Funktionsnamen zu trennen:

class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1.x)  # 输出10
Nach dem Login kopieren

Um diesen Fehler besser zu verstehen und zu vermeiden, geben wir schließlich ein weiteres Codebeispiel.

def add(a, b):
    return a + b

result = add(3, 5)
print(result())

# 报错的原因是result是一个int类型的变量,而不是函数
Nach dem Login kopieren

Hier definieren wir eine Additionsfunktion, die zwei Parameter akzeptiert und deren Summe zurückgibt. Dann weisen wir das Ergebnis von add(3, 5) dem Ergebnis zu und versuchen, result() auszugeben. Es ist jedoch der Fehler „TypeError: ‚int‘ object is not callable“ aufgetreten. Um dieses Problem zu beheben, müssen wir nur die Klammern entfernen:

def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 输出8
Nach dem Login kopieren

Durch die obigen Codebeispiele hoffen wir, allen effektiv dabei zu helfen, den häufigen Python-Fehler TypeError: 'xxx' object is not callable zu verstehen und zu lösen. Wenn dieser Fehler auftritt, überprüfen Sie bitte, ob die oben genannten Probleme in Ihrem Code vorliegen, und passen Sie den Code entsprechend an, um ähnliche Fehler zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo lösen Sie den Python-Fehler: TypeError: Das Objekt „xxx' ist nicht aufrufbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage