当我似乎正在填充参数时,为什么会出现 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()
我正在尝试创建一个对象,我首先用 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()