Python, obtenu un inattendu argument mot-clé dans mon code python
Mon code python continue de me donner cette erreur
c'est la fonction que j'essaie d'appeler, avec en dessous le code qui l'appelle.
from sys import stdout
def print_nested_list(lijst, indent=False, indent_level=0, fh=stdout):
for x in lijst:
if isinstance(x, list):
print_nested_list(x, indent, indent_level+1, fh)
else:
if indent:
for tabstop in range(indent_level):
print("\t", end='', file=fh)
print(x, file=fh)
try:
with open(r'C:\Python34\headfirstpython\chapter 3\man_data.txt', 'w') as man_data:
print_nested_list(man, fh=man_data)
with open(r'C:\Python34\headfirstpython\chapter 3\other_data.txt', 'w') as other_data:
print_nested_list(other, fh=other_data)
RALENTI donne ce message d'erreur lorsque j'essaie de le lancer
Traceback (most recent call last):
File "C:\Python34\headfirstpython\chapter 3\sketch1.py", line 25, in <module>
print_nested_list(man, fh=man_data)
TypeError: print_nested_list() got an unexpected keyword argument 'fh'
Je ne comprends pas quel est le problème avec ma fonction ou la façon dont je l'appelle ma fonction?
- première règle de débogage: supposons que le message d'erreur est vous dire la vérité littérale.
- Est-ce votre code? l'indentation est drôle, et il n'y a pas
except
accompagnant letry
, etman
etother
ne sont pas définies nulle part. - c'est une partie du code, la fonction et le reste du code sont séparés dans des fichiers différents. J'ai eu un peu de difficultés à télécharger ce code sans réglage de l' "Vous êtes le code n'est pas dans les blocs de code' avertissement de ce site, de sorte que pourrait avoir foiré mon indentation.
- voir Comment dois-je formater mon code blocks? pour obtenir de l'aide avec la mise en forme du code.
Vous devez vous connecter pour publier un commentaire.
Dans la liste d'arguments, vous n'avez pas 'fh' - vous avez "fh_id'. Essayez d'utiliser 'fh" à la place.
import packagename.subfile
au lieu de simplementimport subfile
, de sorte Python cherché dans mon chemin d'importation au lieu de dans le répertoire local.Votre fonction n'est pas ont un
fh
argument mot-clé. Il a unfh_id
argument mot-clé bien.Corriger votre signature de fonction (renommer
fh_id
àfh
) ou de votre appel (utiliserfh_id
au lieu defh
).