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中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
Python计算三维矢量幅度的方法
Jun 15 Python
python对象及面向对象技术详解
Jul 19 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
如何通过python画loss曲线的方法
Jun 26 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Python 存取npy格式数据实例
Jul 01 Python
Python 创建TCP服务器的方法
Jul 28 Python
详解python爬取弹幕与数据分析
Nov 14 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 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
中国的第一台收音机
2021/03/01 无线电
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
色色整理的PHP面试题集锦
2012/03/08 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
Python回调函数用法实例详解
2015/07/02 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
python对Excel的读取的示例代码
2020/02/14 Python
Python super()方法原理详解
2020/03/31 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
介绍一下linux的文件权限
2014/07/20 面试题
关于爱国的标语
2014/06/24 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
单位授权委托书范本
2014/09/26 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
音乐教师求职信范文
2015/03/20 职场文书
高中运动会广播稿
2015/08/19 职场文书
入团申请书格式
2019/06/20 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
用python自动生成日历
2021/04/24 Python