python - 为什么需要在 Python 方法中显式使用 "self"参数?

在 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/

相关文章:

python - 如何在 Pandas 中选择除一列之外的所有列?

python - 让 virtualenv 从你的全局站点包中继承特定的包

python - 用 Python 控制鼠标

linux - 如何快速汇总文件中的所有数字?

mysql - 如何在windows的命令行中找到mysql数据目录

linux - 什么是 .pid 文件,它包含什么?

linux - 更改用户默认主目录的命令

python - 从字符串中删除所有特殊字符、标点符号和空格

linux - 如何将 time 命令的输出重定向到 Linux 中的文件?

python - 从数字中获取月份名称