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网络爬虫学习笔记(1)
Apr 09 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
Python脚本完成post接口测试的实例
Dec 17 Python
python输入多行字符串的方法总结
Jul 02 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
python日志模块logbook使用方法
Sep 19 Python
python修改文件内容的3种方法详解
Nov 15 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
python标准库OS模块详解
Mar 10 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
python 统计代码耗时的几种方法分享
Apr 02 Python
python异常中else的实例用法
Jun 15 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备份/还原MySQL数据库的代码
2011/01/06 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
深入理解Python中的元类(metaclass)
2015/02/14 Python
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python匿名函数用法实例分析
2019/08/03 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
python画环形图的方法
2020/03/25 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
新员工试用期自我鉴定
2014/04/17 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
2014年团支书工作总结
2014/11/14 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
门市房租房协议书
2014/12/04 职场文书
毕业设计论文评语
2014/12/31 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
销售人员管理制度
2015/08/06 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL