class Employee:
def __init__(self, first, last, pay):
self.k=first
self.p=last
self.l=pay
self.email=first+'.'+last+'@gmail.com'
h= self.email
return (h)
def fullname(self):
return ('{} {}'.format(self.k,self.p))
emp_1=Employee('Aditya','Shrivastava', 500000)
print(emp_1.fullname())`
Excepton:
Traceback (most recent call last):
File "A:/Python/Programs/main.py", line 54, in <module>
emp_1=Employee('corey','schafer',50000)
TypeError: __init__() should return None, not 'str'
答案 0 :(得分:2)
__init__
来设置创建的新空白实例。始终必须返回None
。来自object.__init__()
documentation:
由于
__new__()
和__init__()
在构建对象(__new__()
以创建对象,以及__init__()
进行自定义)时协同工作,因此没有非None
值可能由__init__()
返回;这样做会导致在运行时引发TypeError
。
返回None
是没有return
语句的函数的默认值;从return (h)
__init__
class Employee:
def __init__(self, first, last, pay):
self.k=first
self.p=last
self.l=pay
self.email=first+'.'+last+'@gmail.com'
创建实例后,您可以访问email
属性,无需返回。