Maison  >  Article  >  développement back-end  >  Solution à l'erreur AttributeError(\'{0!r} l'objet n'a pas d'attribut {1!r}\'.format(type(self).__name__, k))

Solution à l'erreur AttributeError(\'{0!r} l'objet n'a pas d'attribut {1!r}\'.format(type(self).__name__, k))

王林
王林avant
2024-02-29 18:40:201201parcourir

报错AttributeError('{0!r} object has no attribute {1!r}'.format(type(self).__name__, k))的解决

La raison de l'erreur

Ce message d'erreur indique que dans le code python, un objet (représenté par la variable self) est utilisé, mais l'objet n'a pas d'attribut nommé k. Cela peut être dû au fait que l'objet ne définit pas cette propriété ou qu'une erreur de type dans le code fait que l'objet n'est pas du type attendu.

Comment réparer

Pour résoudre cette erreur, vous devrez peut-être effectuer une ou plusieurs des opérations suivantes :

Vérifiez votre code pour l'erreur et assurez-vous que l'objet référencé par la variable self possède une propriété nommée k.

Vérifiez votre code pour les erreurs de type et assurez-vous que l'objet référencé par la variable self est du type attendu.

Si l'attribut est manquant, vous devez définir cet attribut dans la classe

Utilisez try sauf pour obtenir cette erreur

S'il est déterminé que k est un attribut qui n'est pas défini dans la classe, veuillez confirmer si k est une faute d'orthographe.

La solution dépend du code spécifique et de la cause de l'erreur.

Exemple d'utilisation

Oui, voici un exemple simple montrant comment cette erreur peut survenir :

class MyClass:
def __init__(self):
self.var1 = 10

obj = MyClass()

print(obj.var2)# var2 is not defined in MyClass

Le code ci-dessus définit une classe MyClass et y définit un attribut var1. Il crée ensuite une instance de MyClass et tente d'imprimer une propriété appelée var2. Étant donné que var2 n'est pas défini dans MyClass, l'erreur AttributeError('MyClass' object has no attribut 'var2') sera générée.

Cette erreur peut être résolue en définissant l'attribut var2 dans MyClass comme :

class MyClass:
def __init__(self):
self.var1 = 10
self.var2 = 20

obj = MyClass()

print(obj.var2)# 20

Vous pouvez également utiliser try except pour détecter cette erreur :

class MyClass:
def __init__(self):
self.var1 = 10

obj = MyClass()
try:
print(obj.var2)# var2 is not defined in MyClass
except AttributeError as e:
print("AttributeError occured:",e)

Ceci n'est qu'un exemple simple, dans le code réel, la cause de l'erreur peut être plus complexe.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer