class Employee:
def __init__(self, first, last):
self.first = first
self.last = last
def fullname():
return '{} {}'.format(self.first, self.last)
emp = Employee('Rob', 'M')
print (emp.fullname())
你会注意到我在 fullname 方法中遗漏了self
关键字,所以我得到:
TypeError: fullname() takes 0 positional arguments but 1 was given
这实际上是一个参数错误吗?我的猜测是否定的,所以我尝试了:
class Employee:
def __init__(foo, first, last):
foo.first = first
foo.last = last
def fullname():
return '{} {}'.format(self.first, self.last)
emp = Employee('rob', 'm')
print(emp.fullname())
以及其他一些事情,例如将 self 排除在fullname()
. 但是,每种更改方法都表示错误是TypeError
. 所以我很困惑,为什么fullname()
要传递一个论点?