Salut,
La seule chose qui soit fiable, c'est l'interpréteur Python. S'il dit (comme le PO le rapporte) "Type error:grade_population() take exactly 1 argument (2 given)" alors la construction est plutôt:
1 2 3 4 5 6 7 8 9 10
| >>> class population:
... def grade_population(population):
... pass
...
>>> p = population()
>>> p.grade_population(p)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: grade_population() takes 1 positional argument but 2 were given
>>> |
Et pas la peine de passer "p" en argument puisqu'il est déjà passé implicitement.
note: on pourrait cependant écrire:
>>> population.grade_population(p)
mais ce n'est plus de la prose de débutant.
note: ce qui est sûr c'est que dans le code posté par le PO grade_population n'est pas méthode de la classe "population" mais une simple fonction. Le message d'erreur rapporté n'est pas cohérent.
Il faut interpréter ce que le PO raconte (j'ai une méthode) et se conforter avec le message d'erreur Python (il aurait été "AttributeError" si "grade_population" était "fonction").
- W
Partager