为什么需要在Python方法中显式包含“ self”自变量?

发布于 2021-02-02 23:15:08

在Python中的类上定义方法时,它看起来像这样:

class MyClass(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y

但是在某些其他语言(例如C#)中,你可以使用“ this”关键字来引用该方法所绑定的对象,而无需在方法原型中将其声明为参数。

这是Python中的一种故意的语言设计决策,还是有一些实现细节需要传递“ self”作为参数?

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    我喜欢引用Peters的Python Zen。“显式比隐式好。”

    在Java和C ++中,this.可以推断出’ ‘,除非你拥有无法推断的变量名。因此,你有时需要它,有时则不需要。

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看