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通过正则表达式选取callback的方法
Jul 18 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
Python随机数random模块使用指南
Sep 09 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
python3实现逐字输出的方法
Jan 23 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
Python3视频转字符动画的实例代码
Aug 29 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
python实现随机加减法生成器
Feb 24 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 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 rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
如何在微信小程序中存setStorage
2019/12/13 Javascript
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Python3爬虫全国地址信息
2019/01/05 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
医务工作者先进事迹材料
2014/01/26 职场文书
晨会主持词
2014/03/17 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
大学新生军训方案
2014/05/03 职场文书
诉前财产保全担保书
2014/05/20 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
自信主题班会
2015/08/14 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记