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查找函数f(x)=0根的解决方法
May 07 Python
Python中使用支持向量机SVM实践
Dec 27 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Python爬虫文件下载图文教程
Dec 23 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
Python中如何引入第三方模块
May 27 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
PyQt5爬取12306车票信息程序的实现
May 14 Python
宝塔更新Python及Flask项目的部署
Apr 11 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
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
php实现生成验证码实例分享
2016/04/10 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python对象与引用的介绍
2019/01/24 Python
Form表单及django的form表单的补充
2019/07/25 Python
用django设置session过期时间的方法解析
2019/08/05 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
物业管理专业个人的自我评价
2013/11/19 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
党在我心中演讲稿
2014/09/02 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
社区党务工作总结2015
2015/05/19 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
导游词之张家口
2019/12/13 职场文书
Java spring单点登录系统
2021/09/04 Java/Android