builtins.TypeError:*:' int'不支持的操作数类型和'方法'

时间:2018-03-06 00:14:18

标签: python-3.x class typeerror

我正在编写YouTube教程中的一些代码,但我一直遇到类型错误。为什么呢?

class Employee():
    ''' keeps track of company employees'''

    raise_amount = 1.04

    def __init__(self, first, last, pay):
        self.first = first
        self.last = last
        self.pay = pay 
        self.email = last + '.' + first +'@tech.com'

    def fullname(self):
        return self.first +' ' + self.last

    def Email(self): #not needed bc its already an attribute 
        return self.email 

    def raise_amount(self):
        return ((self.pay * self.raise_amount) - self.pay)    

    def annual_raise(self):
        self.pay = int(self.pay * self.raise_amount)
        return pay 

2 个答案:

答案 0 :(得分:0)

在这里,您对方法和类变量使用了相同的名称 raise_amount。当你执行下面的代码

 def raise_amount(self):
        return ((self.pay * self.raise_amount) - self.pay) 

self.raise_amount 将指向方法 raise_amount。因此乘法运算失败,因为它期望其参数为数字。您可以更改类变量名称或方法名称。

如果您要更改类变量名称,请更改如下代码:

raise_amount_value = 1.04

方法内部:

def raise_amount(self):
    return ((self.pay * self.raise_amount_value) - self.pay)

def annual_raise(self):
    self.pay = int(self.pay * self.raise_amount_value)
    return pay

答案 1 :(得分:-1)

Class Employee(): '''跟踪公司员工'''

SingleChildScrollView(
  controller: _controller,
  child: ...,
)

emp_1 = Employee(“ Joshua”,“ Ozoya”,9000)

print(emp_1.fullname())

您的程序运行正常。

emp_1 = Employee(“ Joshua”,“ Ozoya”,9000)

print(emp_1.fullname())

添加这两行代码以获得结果。

另外,指定您遇到的错误。