我是Python新手。在我的模块 - Utility.py中,下面的函数包含一个人的年龄和性别。它返回此人必须根据其年龄和性别支付的费用。我不允许对此模块进行任何更改。
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
我还创建了一个新模块PrintFees.py,我需要提示用户输入年龄和性别,然后将输入传递给我需要从Utility模块调用的函数(get_fees)。我还需要打印所需的费用。
以下是我的尝试:
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))
当我尝试运行时,会出现此错误消息。
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
我该如何解决这个问题?感谢。
答案 0 :(得分:0)
首先,您需要在与代码相同的文件夹中或在python目录中的站点包中使用Utility模块。如果它是实用程序代码中的类的名称。我将展示一个例子:
import Utility
Utility.className.functionName(arguments)
答案 1 :(得分:0)
首先你的目录结构是这样的
path/
|
|----__init__.py
|----Utility.py
|----PrintFees.py
的目的
在Utility.py
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
在printfees.py
form Utility import get_fees
age= int(input("What's your age? " ))
gender = input("What's your gender? [M|F]")
#Print fees
print("Your fees is $ %s", str(get_fees(age,gender)))
答案 2 :(得分:-1)
我猜你的问题是get_fees函数中的缩进:
而不是:
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
这样做:
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