TypeError: Class() 在 Python 中没有参数

TypeError: Class() 在 Python 中不带参数

TypeError: Class() takes no arguments in Python

Python“TypeError: Class() takes no arguments”发生在我们忘记__init__()在类中定义方法但在实例化时提供参数的情况下。要解决该错误,请确保在__init__()类中定义(每边两个下划线)方法。

python typeerror 类没有参数

下面是错误如何发生的示例。

主程序
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__()方法。

上面示例中的namesalary实例变量对于每个实例都是唯一的,而不是所有实例共享的类变量。 country

请注意,该__init__()方法采用的第一个参数是self

您可以将此参数命名为任何名称,因为该名称self在 Python 中没有特殊含义。

self表示该类的一个实例,因此当我们将一个变量赋值为 时
self.my_var = 'some value',我们声明了一个实例变量——每个实例的唯一变量。

结论

Python“TypeError: Class() takes no arguments”发生在我们忘记__init__()在类中定义方法但在实例化时提供参数的情况下。要解决该错误,请确保在__init__()类中定义(每边两个下划线)方法。