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调用浏览器并打开一个网址的例子
Jun 05 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
python写一个md5解密器示例
Feb 23 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
基于python监控程序是否关闭
Jan 14 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
scrapy头部修改的方法详解
Dec 06 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
JAVA/JSP学习系列之四
2006/10/09 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
用python写测试数据文件过程解析
2019/09/25 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
深入分析python 排序
2020/08/24 Python
小结Python的反射机制
2020/09/28 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
委托书样本
2014/04/02 职场文书
产品质量保证书
2014/04/29 职场文书
防火标语大全
2014/10/06 职场文书
教育实习指导教师评语
2014/12/31 职场文书
简历自荐信范文
2015/03/09 职场文书
限期整改通知书
2015/04/22 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
关于MySQL中explain工具的使用
2023/05/08 MySQL