TypeError: __init__() 应该返回 None,而不是 ‘X’ (Python)

TypeError: _ _ init _ _ () 应该返回 None,而不是 ‘X’ (Python)

TypeError: __init__() should return None, not ‘X’ (Python)

当我们从类中的方法返回值时,会出现Python“TypeError: _ init _ _ () should return None, not ‘X’” __init__()

要解决该错误,请return从方法中删除该语句,因为
__init__类中的方法应始终隐式返回None

typeerror init 应该返回 none 不

TypeError: __init__() should return None, not 'int'

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

主程序
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary # 👇️ remove this return statement return {'name': name, 'salary': salary} # ⛔️ TypeError: __init__() should return None, not 'dict' emp1 = Employee('Bob', 75)

错误是因为我们从__init__()方法中返回了一个值。

__init__方法不应该有return声明

__init__方法应始终None(隐式)返回,因此删除
return 语句以解决错误。

主程序
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary emp1 = Employee('Bob', 75) print(emp1.name) # 👉️ 'Bob' print(emp1.salary) # 👉️ 75

__init__方法用于在实例上设置提供的值,不应返回值。

如果我们返回的值不是None来自类的方法,则会引发__init__()a
TypeError

从技术上讲,您可以return None方法中获取,但没有充分的理由这样做,因为所有未显式返回值的函数和方法 return __init__() None

当类定义__init__()方法时,创建实例时将调用该方法。

__init__()方法不应返回任何内容。

主程序
class Employee(): country = 'Belgium' def __init__(self, name, salary): self.name = name self.salary = salary def get_name(self): return self.name emp1 = Employee('Bob', 75) print(emp1.get_name()) # 👉️ 'Bob' print(emp1.salary) # 👉️ 75
确保缩进正确并且没有拼错(每边两个下划线)。 __init__

如果在实例化类时传递参数,则参数将传递给方法__init__()

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

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

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

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

我还写了一篇关于
从类方法中“返回自我”的目的的文章。

想了解更多关于在 Python 中使用类的信息吗? 查看这些资源: 在 Python 中从字典创建类实例在 Python 中从字典创建类实例

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: