在各种教程中,我发现它声称使用instance.method()
调用方法在句法上等同于Class.method(instance)
。我还在研究什么方法绑定'是和官方的python文档说明:
"当引用的实例属性不是数据属性时, 它的类被搜索。如果名称表示有效的类属性 这是一个函数对象,通过打包创建方法对象 (指向)实例对象和刚刚找到的函数对象 在一个抽象对象中:这是方法对象。当。。。的时候 使用参数列表调用方法对象,新的参数列表是 从实例对象和参数列表构造而来 使用这个新的参数列表调用function对象。"
根据此描述,只显示instance.method()
语法会产生一个'抽象方法对象'正在创建,因为正在引用'实例属性'。如果是这种情况,这两个表达式在语法上是如何等效的?
答案 0 :(得分:0)
因为创建该抽象对象只是一个中间步骤。在你给出的报价中,最终结果是:
从实例对象和参数列表构造一个新的参数列表,并使用这个新的参数列表调用函数对象
换句话说,最后,调用“is”方法的函数对象,将实例作为第一个参数,并传递其余参数。当你使用实例作为第一个参数调用方法时,也会发生这种情况。