为什么我用其他关键字(如(信息)替换 __init__ 时出现错误
why i get error when i replace __init__ by other key word like(info)
class worker:
def info(self,name,last,age,salary):
self.name=name
self.last=last
self.age=age
self.salary=salary
self.email=name+last+'@'+'gmail.com'
emp1=worker('sujit','regmi',22,60000)
print(emp1.email)
回溯(最后一次调用):
文件 "main.py",第 8 行,位于
emp1=工人('sujit','regmi',22,60000)
类型错误:此构造函数不带参数
__init__
是构造函数的标准名称,您永远不会显式调用构造函数。
它在创建对象时被隐式调用。
让我们来看看你的情况。
class worker:
def __init__(self,name,last,age,salary):
self.name=name
self.last=last
self.age=age
self.salary=salary
self.email=name+last+'@'+'gmail.com'
emp1=worker('sujit','regmi',22,60000)
print(emp1.email)
现在,要初始化 class,您将执行如下操作:
emp1=worker('sujit','regmi',22,60000)
并且 class 对象将通过隐式调用 __init__
创建。
但是,当您更改 __init__
函数的名称时,Python 不知道调用谁来初始化对象。
这就是为什么,它给出了错误。
尝试使用构造函数。__init__
是 python 中使用构造函数的关键字:
class worker:
def __init__(self,name,last,age,salary):
self.name=name
self.last=last
self.age=age
self.salary=salary
self.email=name+last+'@'+'gmail.com'
emp1=worker('sujit','regmi',22,60000)
print(emp1.email)
class worker:
def info(self,name,last,age,salary):
self.name=name
self.last=last
self.age=age
self.salary=salary
self.email=name+last+'@'+'gmail.com'
emp1=worker('sujit','regmi',22,60000)
print(emp1.email)
回溯(最后一次调用): 文件 "main.py",第 8 行,位于 emp1=工人('sujit','regmi',22,60000) 类型错误:此构造函数不带参数
__init__
是构造函数的标准名称,您永远不会显式调用构造函数。
它在创建对象时被隐式调用。
让我们来看看你的情况。
class worker:
def __init__(self,name,last,age,salary):
self.name=name
self.last=last
self.age=age
self.salary=salary
self.email=name+last+'@'+'gmail.com'
emp1=worker('sujit','regmi',22,60000)
print(emp1.email)
现在,要初始化 class,您将执行如下操作:
emp1=worker('sujit','regmi',22,60000)
并且 class 对象将通过隐式调用 __init__
创建。
但是,当您更改 __init__
函数的名称时,Python 不知道调用谁来初始化对象。
这就是为什么,它给出了错误。
尝试使用构造函数。__init__
是 python 中使用构造函数的关键字:
class worker:
def __init__(self,name,last,age,salary):
self.name=name
self.last=last
self.age=age
self.salary=salary
self.email=name+last+'@'+'gmail.com'
emp1=worker('sujit','regmi',22,60000)
print(emp1.email)