paramètre d’objet de classe Python

Les arguments qu’un objet de classe accepte sont passés via une fonction appelée __init__(). Si vous avez mal orthographié cette fonction dans votre déclaration de classe, vous rencontrerez une "TypeError : object() ne prend aucun argument" erreur lorsque vous exécutez votre code.

Dans ce guide, nous expliquons ce que signifie cette erreur et pourquoi vous pouvez la rencontrer. Nous allons parcourir un exemple de cette erreur pour vous aider à comprendre comment la corriger.

TypeError : object() ne prend aucun argument

Les objets d’une classe peuvent éventuellement accepter des arguments. Ces arguments sont utilisés pour définir des valeurs dans un objet. Considérez le code suivant :

La méthode __init__ nous permet d’attribuer une valeur au "self.name‚" variable dans notre classe. Nous pouvons référencer cette variable dans n’importe quelle méthode de notre classe.

La méthode __init__ est une méthode spéciale. On l’appelle souvent constructeur. La méthode constructeur doit être orthographiée correctement, sinon vous ne pouvez pas passer d’arguments dans une instruction o√π vous déclarez un objet d’une classe.

Pour référence, la méthode __init__ s’écrit comme suit :

Deux traits de soulignement, suivis de "init‚", suivis de deux traits de soulignement.

La "TypeError : object() ne prend aucun argument‚" l’erreur peut également être causée par une indentation incorrecte. Si vous avez correctement orthographié la méthode __init__, assurez-vous d’utiliser des espaces et des onglets cohérents dans votre classe.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Nous allons créer un programme qui suit les informations sur un produit dans un magasin d’électronique. Pour commencer, définissez une classe. Cette classe sert de modèle pour nos produits :

Notre classe contient deux méthodes. La première méthode est notre constructeur. Cette méthode définit toutes les valeurs que les objets de notre classe peuvent stocker. La deuxième méthode nous permet de visualiser le prix d’un produit.

:1em; padding-right:1em;">" PLUS : erreur de type Python : l’objet ’list’ n’est pas appelable Solution

Ensuite, nous allons créer un objet de notre classe :

Ce code crée un objet pour un grill George Foreman allumé vente au magasin d’électronique. Ensuite, nous allons appeler notre méthode show_price() afin que nous puissions voir le prix de ce produit :

Exécutons notre code et voyons ce qui se passe :

Notre code renvoie un message d’erreur.

La solution

Pour affecter des valeurs initiales aux variables à l’intérieur un objet, vous devez spécifier les valeurs de ces variables comme arguments dans l’instruction o√π un objet est déclaré.

Cela ne fonctionne que s’il existe une méthode __init__ valide dans un objet. Sinon, Python ne sait pas comment traiter les valeurs que vous avez spécifiées comme arguments. Sans une méthode spéciale __init__, Python ne saurait pas quelle méthode doit traiter les arguments.

Dans notre code, nous avons déclaré une méthode _init_ (avec un trait de soulignement de chaque côté) :

Ceci n’est pas traité de la même manière que __init__. Pour résoudre cette erreur, nous devons renommer cette méthode afin qu’elle utilise la bonne syntaxe :

Nous avons renommé notre méthode en __init__. Exécutons notre code et voyons si cela fonctionne :

Notre code nous indique avec succès le prix du gril George Foreman.

TypeError : ce constructeur ne prend aucun argument

L’erreur "TypeError : object() ne prend aucun argument‚" apparaaît sous la forme "TypeError : ce constructeur ne prend aucun argument" dans Python 2.x.

Ce message nous indique que nous avons fait une erreur dans la définition de notre constructeur. Pour résoudre ce problème, assurez-vous que vous épelez le __init__() correctement et que vous utilisez l’indentation correcte dans la classe qui provoque l’erreur.

Conclusion

La "TypeError : object() prend aucune erreur" est générée lorsque vous ne déclarez pas une méthode appelée __init__ dans une classe qui accepte les arguments.

Pour résoudre cette erreur, vérifiez votre code pour vous assurer que __init__( ) est correctement orthographié. La méthode doit avoir deux traits de soulignement de chaque côté du word "init‚".

Vous êtes maintenant prêt à corriger cette erreur Python courante comme un professionnel !