Maison > Article > développement back-end > Comment résoudre l'erreur Python : TypeError : l'objet 'xxx' n'est pas appelable ?
Comment résoudre l'erreur Python : TypeError : l'objet 'xxx' n'est pas appelable ?
Dans le domaine de la programmation Python, des erreurs sont souvent rencontrées. L'une des erreurs courantes est TypeError : l'objet 'xxx' n'est pas appelable. Cette erreur signifie qu'un objet est utilisé dans le code actuel, mais il est appelé en tant que fonction, mais en fait l'objet n'est pas appelable. Pour vous aider à mieux comprendre et résoudre ce problème, nous examinerons la cause de cette erreur, comment l'identifier et la corriger, ainsi que quelques exemples de code.
Tout d'abord, regardons un exemple de code spécifique :
class MyClass: def __init__(self, x): self.x = x def print_x(self): print(self.x) obj1 = MyClass(10) obj2 = MyClass(20) print(obj1()) # 报错发生在这一行
Le code ci-dessus définit une classe MyClass, qui a une méthode d'initialisation __init__ et une méthode print_x qui imprime x. Dans le programme principal, nous avons créé deux objets de cette classe, obj1 et obj2, et essayé d'appeler obj1, mais une erreur TypeError: 'MyClass' object is not callable s'est produite.
Tout d'abord, pour résoudre cette erreur, nous devons clarifier la cause de l'erreur. TypeError : l'objet 'xxx' n'est pas appelable signifie généralement que nous essayons d'appeler un objet qui n'est pas appelable. Dans l'exemple de code ci-dessus, nous avons essayé d'appeler un objet obj1, mais cet objet est une instance de la classe MyClass et il n'est pas conçu pour être appelé. Par conséquent, Python générera cette erreur.
Maintenant que nous comprenons la cause de cette erreur, l'étape suivante consiste à savoir comment l'identifier et la corriger. Il existe plusieurs situations courantes :
obj1.print_x()
. 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
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()) # 报错发生在这一行
Pour résoudre ce problème, nous devons modifier le code pour séparer le nom de la variable et le nom de la fonction :
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
Enfin, afin de mieux comprendre et éviter cette erreur, nous donnons un autre exemple de code.
def add(a, b): return a + b result = add(3, 5) print(result()) # 报错的原因是result是一个int类型的变量,而不是函数
Ici, nous définissons une fonction d'ajout qui accepte deux paramètres et renvoie leur somme. Ensuite, nous attribuons le résultat de add(3, 5) à result et essayons d'imprimer result(). Cependant, nous avons rencontré une erreur TypeError: 'int' object is not callable. Pour résoudre ce problème, il nous suffit de supprimer les crochets :
def add(a, b): return a + b result = add(3, 5) print(result) # 输出8
Grâce aux exemples de code ci-dessus, nous espérons aider efficacement tout le monde à comprendre et à résoudre l'erreur Python courante TypeError : l'objet 'xxx' n'est pas appelable. Lorsque cette erreur se produit, veuillez vérifier si les problèmes mentionnés ci-dessus existent dans votre code et ajustez le code de manière appropriée pour éviter des erreurs similaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!