【发布时间】:2020-04-20 15:34:47
【问题描述】:
我最近在学习 Java 后开始关注 Python。我对python解释器的对象构造方式感到困惑。
与 Java 相比,我们只需提供参数即可构造对象,Python 也是如此。
但是当我们在类中定义__init()__ 方法时,我想不出为什么它需要self 参数。
我阅读了this 的问题,发现这些方法需要self 参数,因为python 调用ClassA.methodA(ObjectA, arg1, arg2) 格式的方法。
但我真的不明白为什么 __init()__ 方法需要这个。
是不是因为 Python 生成对象的方式与 Java 生成对象的方式不同。 如果有人可以向我解释,我真的很感激。
【问题讨论】:
-
__init__不创建对象;它init初始化由__new__创建的对象。 -
如果你来自 c++ 背景 m
__init__提供与struct对象相同的功能