这是我得到的错误:
Running...done.
Traceback (most recent call last):
File "main.py", line 13, in <module>
print('Alice:\n Net pay: $%7.2f' % alice.calculate_pay())
TypeError: a float is required
奇怪的错误,我不知道该怎么做。我显然是从Python开始,到目前为止,错误跟踪很容易,减去这一点。这是下面的代码:
class Employee:
def __init__(self):
self.wage = 0
self.hours_worked = 0
def calculate_pay(self):
self.calculate_pay = (self.wage * self.hours_worked)
alice = Employee()
alice.wage = 9.25
alice.hours_worked = 35
print('Alice:\n Net pay: $%7.2f' % alice.calculate_pay())
bob = Employee()
bob.wage = 11.50
bob.hours_worked = 20
print('Bob:\n Net pay: $%7.2f' % bob.calculate_pay())
答案 0 :(得分:4)
您错过了return
声明:
def calculate_pay(self):
self.calculate_pay = (self.wage * self.hours_worked)
return self.calculate_pay
答案 1 :(得分:2)
您正在调用calculate_pay
方法并且它没有返回任何内容,这意味着它默认返回None
。
请从函数返回值并使用它或使用变量或方法
变量使用
alice.calculate_pay()
print('Alice:\n Net pay: $%7.2f' % alice.calculate_pay)
或强>
从功能返回
def calculate_pay(self):
return (self.wage * self.hours_worked)
答案 2 :(得分:1)
更改
def calculate_pay(self):
self.calculate_pay = (self.wage * self.hours_worked)
到
def calculate_pay(self):
self.calculate_pay = (self.wage * self.hours_worked)
return self.calculate_pay
初始值不可调用且等于NoneType
。即使存储到self.calculate_pay
的值是浮点数,也不能像那样引用它。
答案 3 :(得分:0)
将方法和实例变量更改为不同的名称,并在calculate_pay方法中生成return语句:
def calculate_pay(self):
self.calculated_pay = (self.wage * self.hours_worked)
return self.calculated_pay