'Python解释器会将实例绑定到方法还是self参数?'

2024-03-28 12:38:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

The interpreter automatically binds the instance upon which the method is invoked to the self parameter.

在这句话中什么是绑定到实例的。方法,还是self参数?你知道吗


Tags: theto实例instanceselfwhichparameteris
1条回答
网友
1楼 · 发布于 2024-03-28 12:38:45

这其实不是一个坏问题,我不知道为什么这么快就被否决了。。。你知道吗

尽管Python支持面向对象,但我发现它更接近函数式编程语言,原因之一是函数是“在”对象上调用的,而不是“由”对象调用的。你知道吗

例如:len(obj)在一种“真正的”面向对象编程语言中,您希望能够执行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)的“翻译”

相关问题 更多 >