Python解释器是否将实例绑定到方法或self参数?

时间:2017-04-06 15:57:18

标签: python oop methods instance

我正在读一本关于Python中面向对象编程的书。有一句我很困惑:

  

解释器自动将调用该方法的实例绑定到self参数。

在这句话中绑定到实例的内容。方法,或self参数?

1 个答案:

答案 0 :(得分:2)

这实际上并不是一个糟糕的问题,而且我不确定为什么它会如此迅速地被贬低...

尽管Python支持面向对象,但我发现它更接近函数式编程语言,其中一个原因是函数被调用" on"对象,而不是" by"它们。

例如:len(obj)在" true"面向对象的编程语言,您希望能够执行obj.length()

之类的操作

关于self参数,您正在调用obj.method(other_args),但真正发生的事情是将此调用转换为:method(obj, other_args)您可以看到声明您使用作为第一个参数传入的self变量来执行此方法:

class ...

    def method(self, other_args):
    ...

所以它基本上都是关于"翻译" obj.method(other_args)method(obj, other_args)