在 Python 中为类定义方法时,它看起来像这样:
class MyClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
但在某些其他语言中,例如 C#,您可以使用“this”关键字引用方法绑定(bind)到的对象,而无需在方法原型(prototype)中将其声明为参数。
这是 Python 中有意的语言设计决定,还是有一些实现细节需要将“self”作为参数传递?
最佳答案
我喜欢引用 Peters 的 Python Zen。 “显式优于隐式。”
在 Java 和 C++ 中,可以推导出“this.
”,除非您的变量名称无法推导。所以你有时需要它,有时不需要。
Python 选择将此类事情明确化,而不是基于规则。
此外,由于没有任何暗示或假设,因此公开了部分实现。 self.__class__
、self.__dict__
和其他“内部”结构以明显的方式可用。
关于python - 为什么需要在 Python 方法中显式使用 "self"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68282/