Skip to main content
 首页 » 编程设计

python之Python 类的 __init__ 方法中的 self 是什么

2025年05月04日12kevingrace

嗨,我怀疑传递的参数是 python 类中的 __init__ 方法。人们会说这是类实例作为 __init__ 方法中的第一个参数传递到这里。

Class A(): 
 
   def __init__(self): 
       pass 
 
   def check(self): 
      pass 
 
a = A() 
a.check() 

正如我们所理解的那样,'a' 作为方法 __init__ 中的第一个参数被传递。但是这里我们只是创建了类 A 的实例。至于其他方法检查,当我们执行 a.check() 时,将理解 OK 这里我们正在调用类实例的检查所以它正在通过。但是对于 __init__ 方法,我们什么也没做,只是创建了实例。那么它是如何通过的。

举个例子, a = a + 10 ...这将不起作用,除非我们将在开始时为此表达式初始化 a。与 __init__ 相同。

我们刚刚在这里创建了实例 a = A()。然后a会传到这里。

我知道我的问题有点棘手。但这是在采访中被问到的。

有人可以帮忙吗?

请您参考如下方法:

不会传递a,传递类实例。该实例在分配给 a 之前就已存在。它独立于 a 而存在。举个例子:

[A() for _ in range(5)] 

将创建 5 个 A 实例,即使它们没有直接分配给任何变量(可以分配列表表达式,但每个单独的 A() 不是)。

当实例化一个类时,该类的 __new__ 创建新实例,然后对其调用 __init__ ,然后返回新实例并(在您的情况下)分配到 a(有关更深入的详细信息,请参阅 https://stackoverflow.com/a/43187010/476)。