TypeError: Class() 在 Python 中不带参数
TypeError: Class() takes no arguments in Python
Python“TypeError: Class() takes no arguments”发生在我们忘记__init__()
在类中定义方法但在实例化时提供参数的情况下。要解决该错误,请确保在__init__()
类中定义(每边两个下划线)方法。
下面是错误如何发生的示例。
主程序
class Employee(): def get_salary(self): return self.salary # ⛔️ TypeError: Employee() takes no arguments emp = Employee('Alice', 100) print(emp)
我们没有定义__init__()
方法,但正在将参数传递给类。
要解决该错误,请确保定义一个__init__()
方法或更正您的拼写(如果您的类已有一个方法)。
主程序
class Employee(): country = 'Austria' def __init__(self, name, salary): self.name = name self.salary = salary def get_salary(self): return self.salary emp = Employee('Alice', 100) print(emp.name) # 👉️ 100 print(emp.get_salary()) # 👉️ "Alice"
确保缩进正确并且没有拼错(每边两个下划线)。
__init__
当类定义__init__()
方法时,创建实例时将调用该方法。
该__init__()
方法不应返回任何内容。
如果在实例化类时传递参数,则参数将传递给__init__()
方法。
上面示例中的
name
和salary
实例变量对于每个实例都是唯一的,而不是所有实例共享的类变量。 country
请注意,该__init__()
方法采用的第一个参数是self
。
您可以将此参数命名为任何名称,因为该名称self
在 Python 中没有特殊含义。
self
表示该类的一个实例,因此当我们将一个变量赋值为 时
self.my_var = 'some value'
,我们声明了一个实例变量——每个实例的唯一变量。
结论
Python“TypeError: Class() takes no arguments”发生在我们忘记__init__()
在类中定义方法但在实例化时提供参数的情况下。要解决该错误,请确保在__init__()
类中定义(每边两个下划线)方法。