Maison > développement back-end > Tutoriel Python > 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 ?

WBOY
Libérer: 2023-08-19 10:00:45
original
6854 Les gens l'ont consulté

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

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())  # 报错发生在这一行
Copier après la connexion

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 :

  1. Utilisation incorrecte des instances de classes : Dans l'exemple de code ci-dessus, nous essayons d'appeler un objet obj1, mais en fait une méthode de la classe à laquelle appartient l'objet doit être appelée. Par conséquent, nous pouvons modifier le code ci-dessus en 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
Copier après la connexion
  1. Confondre par erreur les noms de variables avec les noms de fonctions : Une autre situation courante consiste à confondre le nom d'une méthode de classe avec le nom d'une variable d'instance, ce qui entraîne un appel incorrect de la variable d'instance en tant que fonction. Par exemple, le code suivant provoquera une erreur 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())  # 报错发生在这一行
Copier après la connexion

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
Copier après la connexion

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类型的变量,而不是函数
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal