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中利用函数装饰器实现备忘功能
Mar 30 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python实现k-means算法
Feb 23 Python
Python3多线程操作简单示例
May 22 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 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像数组一样存取和修改字符串字符
2014/03/21 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
document.write的几点使用心得
2014/05/14 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
什么是servlet
2012/05/08 面试题
最新的互联网创业计划书
2014/01/10 职场文书
财产公证书
2014/04/10 职场文书
大学开学计划书
2014/04/30 职场文书
邀请函范文
2015/02/02 职场文书
单位病假条范文
2015/08/17 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书