python中MethodType方法介绍与使用示例


Posted in Python onAugust 03, 2017

前言

本文主要给大家介绍了关于python中MethodType方法的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍吧

示例代码

#!/usr/bin/python
# -*-coding:utf-8-*-

from types import MethodType 
"""
文件名 class2.py
MethodType 测试
"""
# 首先看第一种方式
#创建一个方法
def set_age(self, arg):
 self.age = arg 
#创建一个类 
class Student(object):
 pass

#------以上为公共部分


s_one = Student()
#给student 创建一个方法 但这里不是在class中创建而是创建了一个链接把外部的set_age 方法用链接知道Student内
s_one.set_age = MethodType(set_age,s_one,Student)
s_one.set_age(32) #调用实例方法
print s_one.age
#》》》》结果 32
s_two = Student() 
s_two.set_age(100) #这里来验证下是在类内有方法还是类外有方法。
print s_two.age
#》》》》结果Traceback (most recent call last):
#》》》》 File "class2.py", line 22, in <module>
#》》》》 s_two.set_age(100) #这里来验证下是在类内有方法还是类外有方法。
#》》》》 AttributeError: 'Student' object has no attribute 'set_age'

看另一种

#直接用类来创建一个方法 不过此时还是用链接的方式在类外的内存中创建
Student.set_age = MethodType(set_age,Student)
#此时在创建实例的时候外部方法 set_age 也会复制 这些实例和Student类都指向同一个set_age方法
new1 = Student()
new2 = Student()
new1.set_age(99)
new2.set_age(98) #第二个会覆盖第一个 
print (new1.age,new2.age) 
#看结果 2个都是98 
#》》》》(98, 98)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python 多线程应用介绍
Dec 19 Python
详解Python2.x中对Unicode编码的使用
Apr 03 Python
深入浅析python继承问题
May 29 Python
详解python调度框架APScheduler使用
Mar 28 Python
Python命令行解析模块详解
Feb 01 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
django 通过URL访问上传的文件方法
Jul 28 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Python常用外部指令执行代码实例
Nov 05 Python
初学python的操作难点总结(新手必看篇)
Aug 03 #Python
python 禁止函数修改列表的实现方法
Aug 03 #Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 #Python
详解Python import方法引入模块的实例
Aug 02 #Python
Python字符串拼接的几种方法整理
Aug 02 #Python
详解 Python 读写XML文件的实例
Aug 02 #Python
Python MD5加密实例详解
Aug 02 #Python
You might like
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
linux比较文件内容的命令是什么
2013/03/04 面试题
如何进行有效的自我评价
2013/09/27 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
仓库规划计划书
2014/04/28 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL