2024-03-28 12:38:45 发布
网友
我正在读一本关于Python面向对象编程的书。有一句话让我很困惑:
The interpreter automatically binds the instance upon which the method is invoked to the self parameter.
self
在这句话中什么是绑定到实例的。方法,还是self参数?你知道吗
这其实不是一个坏问题,我不知道为什么这么快就被否决了。。。你知道吗
尽管Python支持面向对象,但我发现它更接近函数式编程语言,原因之一是函数是“在”对象上调用的,而不是“由”对象调用的。你知道吗
例如:len(obj)在一种“真正的”面向对象编程语言中,您希望能够执行obj.length()
len(obj)
obj.length()
关于self参数,您调用的是obj.method(other_args),但实际情况是将此调用转换为:method(obj, other_args)您可以看到,当声明方法时,您使用的是作为第一个参数传入的self变量:
obj.method(other_args)
method(obj, other_args)
class ... def method(self, other_args): ...
所以基本上都是关于obj.method(other_args)到method(obj, other_args)的“翻译”
这其实不是一个坏问题,我不知道为什么这么快就被否决了。。。你知道吗
尽管Python支持面向对象,但我发现它更接近函数式编程语言,原因之一是函数是“在”对象上调用的,而不是“由”对象调用的。你知道吗
例如:
len(obj)
在一种“真正的”面向对象编程语言中,您希望能够执行obj.length()
关于
self
参数,您调用的是obj.method(other_args)
,但实际情况是将此调用转换为:method(obj, other_args)
您可以看到,当声明方法时,您使用的是作为第一个参数传入的self
变量:所以基本上都是关于
obj.method(other_args)
到method(obj, other_args)
的“翻译”相关问题 更多 >
编程相关推荐