python如何在类/实例中传递第一个变量

python如何在类/实例中传递第一个变量,python,python-internals,Python,Python Internals,在我的班上: class MyClass: def __init__(self): self.title = None 在执行以下操作时,python如何“知道”将MyClass作为第一个参数传递给init: MyClass() 同样,如果我有一个classmethod,python如何“知道”将MyClass作为第一个参数(cls)传递给它呢?这只是解释程序(或编译器)的编写方式。解释器(或编译器)的工作就是识别这一点 MyClass() 应该初始化一个MyCla

在我的班上:

class MyClass:
    def __init__(self):
        self.title = None
在执行以下操作时,python如何“知道”将
MyClass
作为第一个参数传递给init:

MyClass()

同样,如果我有一个classmethod,python如何“知道”将
MyClass
作为第一个参数(cls)传递给它呢?

这只是解释程序(或编译器)的编写方式。解释器(或编译器)的工作就是识别这一点

MyClass()
应该初始化一个
MyClass
对象,并使用新创建的对象作为
self
参数调用
\uuuuu init\uuuu
方法。请注意,正如其中一条注释所述,它是分配给
self
参数的新对象,而不是
MyClass

在调用非初始值设定项方法的情况下,解释器(或编译器)同样知道您正在调用一个方法,因此它将对象作为第一个参数。

它不会将
MyClass
作为第一个参数传递。
\uuuuu new\uuuuu
方法实例化实际实例,然后
\uuuuu init\uuuuu
初始化它。看见用
self
对幕后发生的事情有很好的解释。