在 Python 中为类定义方法时,它看起来像这样:
class MyClass(object): def __init__(self, x, y): self.x = x self.y = y
但在其他一些语言中,例如 C#,您可以使用“this”关键字引用该方法绑定到的对象,而无需在方法原型中将其声明为参数。
这是 Python 中有意的语言设计决定,还是有一些实现细节需要将“self”作为参数传递?
我喜欢引用 Peters 的 Python Zen。“显式胜于隐式。”
在 Java 和 C++ 中,this.可以推导出 ‘ ‘,除非您的变量名称无法进行推导。所以你有时需要它,有时不需要。
this.
Python 选择使这样的事情变得明确而不是基于规则。
此外,由于没有任何暗示或假设,因此公开了部分实现。 self.__class__,self.__dict__并且其他“内部”结构以明显的方式可用。
self.__class__
self.__dict__