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每次处理固定个数的字符的方法总结
Jan 29 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
解决python3中解压zip文件是文件名乱码的问题
Mar 22 Python
详解python中init方法和随机数方法
Mar 13 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
Python3视频转字符动画的实例代码
Aug 29 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
python自动生成sql语句的脚本
Feb 24 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
layui表格实现代码
2017/05/20 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python类属性的延迟计算
2016/10/22 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
Python get获取页面cookie代码实例
2018/09/12 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
详解django中Template语言
2020/02/22 Python
Python中生成ndarray实例讲解
2021/02/22 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
关于青春的演讲稿
2014/05/05 职场文书
2014年教学工作总结
2014/11/13 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
详解flex:1什么意思
2022/07/23 HTML / CSS