【问题标题】:How does python pass the first variable in Class/Instancepython如何传递Class/Instance中的第一个变量
【发布时间】:2019-10-14 02:17:40
【问题描述】:

在我的课堂上:

class MyClass:
    def __init__(self):
        self.title = None

python如何“知道”在做时将MyClass作为第一个参数传递给init:

MyClass()

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

【问题讨论】:

  • 它确实MyClass 作为第一个参数传递。 __new__ 方法实例化实际实例,然后 __init__ 对其进行初始化。见this question
  • this answerself 的幕后发生的事情有很好的解释。

标签: python python-internals


【解决方案1】:

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

MyClass()

应该初始化一个MyClass 对象并使用新创建的对象作为self 参数调用__init__ 方法。请注意,正如其中一位 cmets 所述,分配给 self 参数的是新对象,而不是 MyClass

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2019-10-22
    • 2014-07-01
    相关资源
    最近更新 更多