根据Python 2.7.12文档中用户自定义方法的描述:
用户自定义方法对象可以在获取类的属性时创建(可能通过该类的实例),如果该属性是用户自定义函数对象、未绑定的用户自定义方法对象或类方法对象。当属性是用户自定义方法对象时,仅当检索它的类与原始方法对象中存储的类相同或是其派生类时,才会创建新的方法对象;否则,原始方法对象将按原样使用。
我知道Python中的所有东西都是对象,所以“用户自定义方法”必须与“用户自定义方法对象”完全相同。然而,我不明白为什么会有“用户自定义函数对象属性”。例如,在以下代码中:
奖励问题:提供一些示例,说明如何通过获取类的属性来创建用户定义的方法对象。难道不是在类定义中定义对象吗?(我知道方法可以分配给类实例,但那是猴子补丁。)
我请求帮助,因为这部分文档对我这个只懂C语言的程序员来说真的非常困惑,因为Python是一种支持函数式编程和面向对象编程的神奇语言,而我还没有掌握它。我已经做了很多搜索,但仍然无法弄清楚。
用户自定义方法对象可以在获取类的属性时创建(可能通过该类的实例),如果该属性是用户自定义函数对象、未绑定的用户自定义方法对象或类方法对象。当属性是用户自定义方法对象时,仅当检索它的类与原始方法对象中存储的类相同或是其派生类时,才会创建新的方法对象;否则,原始方法对象将按原样使用。
我知道Python中的所有东西都是对象,所以“用户自定义方法”必须与“用户自定义方法对象”完全相同。然而,我不明白为什么会有“用户自定义函数对象属性”。例如,在以下代码中:
class Foo(object):
def meth(self):
pass
meth
是定义在类体内的函数,因此是一个方法。那么为什么我们可以有“用户定义的函数对象属性”?难道不是所有属性都在类体内定义吗?
奖励问题:提供一些示例,说明如何通过获取类的属性来创建用户定义的方法对象。难道不是在类定义中定义对象吗?(我知道方法可以分配给类实例,但那是猴子补丁。)
我请求帮助,因为这部分文档对我这个只懂C语言的程序员来说真的非常困惑,因为Python是一种支持函数式编程和面向对象编程的神奇语言,而我还没有掌握它。我已经做了很多搜索,但仍然无法弄清楚。