为什么我用其他关键字(如(信息)替换 __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)