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对两个有序列表进行合并和排序的例子
Jun 13 Python
用C++封装MySQL的API的教程
May 06 Python
详解python进行mp3格式判断
Dec 23 Python
Python时间的精准正则匹配方法分析
Aug 17 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python如何访问字符串中的值
Feb 09 Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
python中threading开启关闭线程操作
May 02 Python
python 实现Harris角点检测算法
Dec 11 Python
python中super()函数的理解与基本使用
Aug 30 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数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
php生成rss类用法实例
2015/04/14 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
javascript 写类方式之九
2009/07/05 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
python计算方程式根的方法
2015/05/07 Python
python中函数传参详解
2016/07/03 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
美国眼镜网:GlassesUSA
2017/09/07 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
《雨霖铃》教学反思
2014/02/22 职场文书
篝火晚会策划方案
2014/05/16 职场文书
留学推荐信中文范文
2015/03/26 职场文书
作弊检讨书范文
2015/05/06 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
心术观后感
2015/06/11 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书