优草派 > Python

Python中方法对象是什么?方法对象可以做什么

罗西汉         优草派

在python中方法是一段被封装起来可以重复执行的代码块,而对象则是被实例化后用来保存某个具体数据的东西,那么python中的方法对象是什么呢?

Python中方法对象是什么?方法对象可以做什么

通常方法在绑定后立即被调用,但是立即调用一个方法并不是必须的。x.f是一个方法对象,它可以被保存起来以后再调用,例如:

xf = x.f
while True:
print(xf())

将持续打印hello world,直到结束。

当一个方法被调用时到底发生了什么?你可能已经注意到上面调用x.f()时并没有带参数,虽然f()的函数定义指定了一个参数。这个参数发生了什么事?当不带参数地调用一个需要参数的函数时Python肯定会引发异常---即使参数实际未被使用。

方法的特殊之处就在于实例对象会作为函数的第一个参数被传入。在我们的示例中,调用x.f()其实就相当于MyClass.f(x)。总之,调用一个具有n个参数的方法就相当于调用再多一个参数的对应函数,这个参数值为方法所属实例对象,位置在其他参数之前。

如果你仍然无法理解方法的运作原理,那么查看实现细节可能会弄清楚问题。当一个实例的非数据属性被引用时,将搜索实例所属的类。如果被引用的属性名称表示一个有效的类属性中的函数对象,会通过打包(指向)查找到的实例对象和函数对象到一个抽象对象的方式来创建方法对象:这个抽象对象就是方法对象。当附带参数列表调用方法对象时,将基于实例对象和参数列表构建一个新的参数列表,并使用这个新参数列表调用相应的函数对象。

上述就是关于python中方法对象是什么的全部内容了,希望对你有所帮助。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024