当我似乎正在填充参数时,为什么会出现 TypeError?

Why am I getting a TypeError when I seem to be filling the paremeters?

我正在尝试创建一个对象,我首先用 2 个字段(名称和编号)对其进行初始化。但是每次我 运行 程序我都会得到这个错误:

TypeError: __init__() missing 1 required positional argument: 'number'

class 中的 __init__ 方法如下所示:

    def __init__(self, name, number):
    self.__name__ = name
    self.__number__ = number

我尝试创建对象的代码是这样的:

employee1 = ProductionWorker(Employee)

name = input("Enter employee name:")
number = input("Enter employee number:")

employee1.__init__(name, number)

有谁知道为什么我会收到此错误?

做:

name = input("Enter employee name:")
number = input("Enter employee number:")

employee1 = ProductionWorker(name, number)

您通常不需要显式调用 __init__;它由 ProductionWorker(...) 表达式调用,该表达式将其参数作为初始化的一部分传递给 self.__init__

构造新对象时不需要重述Employee是父class;仅在定义 class 时才需要说。

您正在使用 class 作为参数。 然后, init 总是在创建时自动调用。这可能会如您所愿地工作(使用 show 方法进行验证):

class Employee:
    def __init__(self, name, number):
        self.__name__ = name
        self.__number__ = number
    

    def show(self):
        print(self.__name__)
        print(self.__number__)
    

name = input("Enter employee name:")
number = input("Enter employee number:")
employee1 = Employee(name,number)
employee1.show()