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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
python基础教程之序列详解
Aug 29 Python
Python2随机数列生成器简单实例
Sep 04 Python
Python实现自动发送邮件功能
Mar 02 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
Django框架安装方法图文详解
Nov 04 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
python实现人机五子棋
Mar 25 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
python文件排序的方法总结
Sep 13 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
bootstrap table实例详解
2017/01/06 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python多线程使用方法实例详解
2019/12/30 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
校庆接待方案
2014/03/18 职场文书
成语的广告词
2014/03/19 职场文书
项目合作协议书
2014/04/16 职场文书
难忘的一课教学反思
2014/04/30 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
大学毕业生自我评价
2015/03/02 职场文书
道歉信范文
2015/05/12 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android