Je suis nouveau sur Python. Dans mon module Utility.py, la fonction ci-dessous prend en compte l'âge et le sexe d'une personne. Il renvoie les frais que cette personne doit payer en fonction de son âge et de son sexe. Je ne suis pas autorisé à apporter des modifications à ce module.NameError en Python - Impossible d'appeler une fonction
def get_fees(age, gender):
if gender == 'M':
if age >= 50:
return 300
elif age >= 35:
return 250
else:
return 150
else:
if age >= 50:
return 320
elif age >= 35:
return 270
else:
return 160
J'ai aussi fait un nouveau module, PrintFees.py, où je dois demander à l'utilisateur l'âge et le sexe et passent ensuite les entrées à la fonction (get_fees) que je dois appeler à partir du module utilitaire . J'ai aussi besoin d'imprimer les frais nécessaires.
Voici ce que j'ai essayé:
import Utility
age= int(input("What's your age? "))
gender = input("What's your gender? [M|F]")
#Print fees
print("Your fees is $", Utility.get_fees(age,gender))
Quand j'ai essayé de courir, ce message d'erreur est apparu.
Traceback (most recent call last):
File "printfees.py", line 7, in <module>
print("Your fees is $", Utility.get_fees(age,gender))
NameError: name 'Utility' is not defined
Comment résoudre ce problème? Merci.
Ce ne sont pas des classes, ce sont des modules. –
Si l'importation a été faite je ne vois pas pourquoi ce que vous avez montré ne devrait pas fonctionner. Vous voyez, votre erreur indique 'printfees.py', vous dites' PrintFees.py'. Vous avez probablement fait la même chose avec 'Utility.py' –
Tout d'abord, votre terminologie est un peu éteinte. Vous n'avez créé aucune classe, vous avez créé des modules. Module est juste le jargon Python pour un fichier avec du code Python. Maintenant pour votre problème: je ne peux pas reproduire l'erreur. Quelque chose d'autre que vous ne nous avez pas montré se passe. – timgeb