为什么需要在Python方法中显式包含“ self”参数?

只读 :

在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.可以推断出' ',除非您拥有无法推断的变量名。因此,您有时需要它,有时则不需要。

Python选择使这种事情变得明确,而不是基于规则。

此外,由于没有暗示或假设,因此公开了部分实现。self.__class__self.__dict__以及其他“内部”结构也很明显。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么 save() 方法需要在 django 中进行 self 参数?

为什么我们不需要在self()中包含self?

为什么我得到E2531“方法需要显式类型参数”

为什么Polymer的计算属性需要显式属性参数?

为什么不需要显式设置通用参数?

为什么C ++和Java中的构造函数调用需要显式类型参数?

为什么在Swift 3中默认情况下不关闭转义的闭包为什么需要显式的“ self”?

方法作为带有 self 参数的参数

为什么此python方法将self作为参数

将Self用作类型参数时,为什么需要Ssize?

为什么需要在非异步方法中包装参数验证?

使用 self 变量作为 python 方法参数

为什么类方法在python中必须有self参数?

为什么在 Python 中调用父方法时必须传递 self 参数?

为什么必须将self作为方法装饰的参数?

将self作为参数传递给方法

如何让 trait 方法接受 &Self 参数

方法的参数“ self”已重新分配

在 Python 脚本中使用 self 和参数

在R函数中调用“ self”作为参数

在 FORM 请求中定义 self kwarg 参数

有什么方法可以无序使用默认参数,而不必在Python函数中显式传递它们?

为什么需要在Python的.format方法中进行显式字符串转换?

为什么通用参数上的通配符需要显式强制转换?

为什么在这里需要显式类型参数列表?

为什么泛型不能用代码编写的动作需要显式的参数声明

为什么我可以强制方法的`&self`参数而不是函数参数的引用移动语义?

为什么Box :: into_raw不将self作为参数?

过去的论文令人困惑,为什么省略了self参数?