Python中绑定与未绑定的类方法用法分析


Posted in Python onApril 29, 2016

本文实例讲述了Python中绑定与未绑定的类方法。分享给大家供大家参考,具体如下:

像函数一样,Python中的类方法也是一种对象。由于既可以通过实例也可以通过类来访问方法,所以在Python里有两种风格:

未绑定的类方法:没有self

通过类来引用方法返回一个未绑定方法对象。要调用它,你必须显示地提供一个实例作为第一个参数。

绑定的实例方法:有self

通过实例访问方法返回一个绑定的方法对象。Python自动地给方法绑定一个实例,所以我们调用它时不用再传一个实例参数。

两种方法都是对象,它们可以被传递、存入列表等待。两者运行时都需要一个实例作为第一参数(妤一个self值),但当通过一个实例调用一个绑定方法时Python自动会提供一个。例如我们运行如下的代码:

class Test:
  def func(self,message):
    print message
object1=Test()
x=object1.func
x('绑定方法对象,实例是隐含的')
t=Test.func
t(object1,'未绑定的方法对象,需要传递一个实例') 
#t('未绑定的方法对象,需要传递一个实例') #错误的调用

object1=Test()生成一个实例,object1.func返回一个绑定的方法,把实例object1和方法func绑定。

而Test.func是用类去引用方法,我们得到一个未绑定的方法对象。要调用它就得传一个实例参数,如t(object1,'未绑定的方法对象,需要传递一个实例') 。

大多数时候,我们都直接调用方法,所以一般不会注意到方法对象。但是如果开始写通用的调用对象的代码时,需要特别仔细地注意未绑定方法,它们需要地传一个实例参数。

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现随机漫步算法
Aug 27 Python
在python中bool函数的取值方法
Nov 01 Python
python实现关闭第三方窗口的方法
Jun 28 Python
Python求正态分布曲线下面积实例
Nov 20 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
python中time包实例详解
Feb 02 Python
python中子类与父类的关系基础知识点
Feb 02 Python
python中subplot大小的设置步骤
Jun 28 Python
Python过滤列表用法实例分析
Apr 29 #Python
Python松散正则表达式用法分析
Apr 29 #Python
python中私有函数调用方法解密
Apr 29 #Python
简单学习Python time模块
Apr 29 #Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 #Python
python遍历目录的方法小结
Apr 28 #Python
Python网络爬虫实例讲解
Apr 28 #Python
You might like
PHP文件读写操作之文件写入代码
2011/01/13 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
微信小程序实现点赞业务
2021/02/10 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
简介Django中内置的一些中间件
2015/07/24 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
小学新教师培训方案
2014/02/03 职场文书
主办会计岗位职责
2014/03/13 职场文书
一分钟演讲稿
2014/04/30 职场文书
影子教师研修方案
2014/06/14 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python