Manquant 1 argument de position requis
permettez-moi de commencer avec ce que je suis aussi vert qu'il obtient quand il s'agit de la programmation, mais ont été de décision. Mon esprit cependant encore nécessaire de bien comprendre le pourquoi et ce qui se passe.
De toute façon la question à portée de main comme le suggère le Titre, je vais coller le code source que je vais garder à un minimum.
(J'utilise une Version de Python 3.4.1)
class classname:
def createname(self, name):
self.name = name;
def displayname(self):
return self.name;
def saying(self):
print("Hello %s" % self.name);
first = classname;
second = classname;
first.createname("Bobby");
Je vais coller ici le code d'erreur:
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
first.createname("Bobby")
TypeError: createname() missing 1 required positional argument: 'name'
Je comprends que j'ai besoin de vérifier les erreurs et de lire attentivement ce qu'il dit ainsi que de faire une recherche avant de poster, avec ce fait et à défaut de résoudre le problème, je viens ici pour poster...
À partir d'ici, vous pouvez lire si vous vous intéressez au sujet, je pense que ce qui se passe dans mon esprit:
L'erreur me dit que j'ai besoin de 1 argument de plus dans le nom, donc je doit mal se passer, mais j'ai déjà essayé quelque chose comme ceci:
first.createname("bobby", "timmy");
Avoir plus d'arguments que de nom? Si je comprends bien l'argument est dans cette --> () <--
J'ai également se prononcer sur le fait qu'il serait le def createname(self, nom), parce que l'auto est ou doit être seul et de ne pas inclus? Donc, je ne comprends pas vraiment ce qui se passe.
Vous en remercie d'avance et désolé si cela a déjà répondu, dans ce cas, je dois avoir oublié.
RÉSOLU:
first = classname;
second = classname;
Devrait être:
first = classname();
second = classname();
Les parenthèses où manquantes qui signifie bien sûr que je viens de faire la première et de la deuxième ÉGAL à autre chose et de ne pas faire le lien avec le "réel cl
source d'informationauteur XallZall | 2014-07-22
Vous devez vous connecter pour publier un commentaire.
C'est très facile de répondre, surpris vous n'avez jamais eu une réponse! 🙁
Vous n'avez pas fait créé un objet encore.
Par exemple, vous pouvez écrire:
au lieu de simplement
À l'heure actuelle, comment vous l'avez écrit,
first
pointant vers un classe. E. g., si vous vous demandez ce quefirst
est, vous obtenez:Cependant, après l'instanciation (en ajoutant simplement le
()
à la fin), vous verriez quefirst
est maintenant:La distinction importante ici est que votre appel créé un classealors que le mien a créé un objet.
Vous avez créé "canine", alors que vous avez voulu créer "Lassie".
Remarque: vous aussi vous voulez généralement à l'initialisation de vos objets. Pour cela, vous placez un
__init__
méthode dans votre classe.