Python 为什么我用其他关键字(如(info)替换_init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

Python 为什么我用其他关键字(如(info)替换_init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,python,class,init,Python,Class,Init,回溯(最近一次呼叫最后一次): 文件“main.py”,第8行,在 emp1=工人('sujit','regmi',2260000) TypeError:此构造函数不带任何参数\uuuu init\uuuuu是构造函数的标准名称,您永远不会显式调用构造函数。 它在创建对象时隐式调用。 让我们来看看你的情况 class worker: def info(self,name,last,age,salary): self.name=name self.last=

回溯(最近一次呼叫最后一次): 文件“main.py”,第8行,在 emp1=工人('sujit','regmi',2260000)
TypeError:此构造函数不带任何参数

\uuuu init\uuuuu
是构造函数的标准名称,您永远不会显式调用构造函数。 它在创建对象时隐式调用。 让我们来看看你的情况

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)
现在,要初始化该类,您需要执行以下操作:

emp1=worker('sujit','regmi',2260000)

类对象将通过隐式调用
\uuuu init\uuu
来创建。 但是,当您更改
\uuu init\uu
函数的名称时,Python不知道调用谁来初始化对象


这就是它给出错误的原因。

尝试使用构造函数。
\uuuu init\uuuu
是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)

Python怎么知道您打算替换
\uuuu init\uuuu
?正确解释,他知道它与构造函数一起工作。冷静,下次小心。
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)