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 相关文章推荐
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Apr 09 Python
python使用7z解压apk包的方法
Apr 18 Python
在Python中操作文件之seek()方法的使用教程
May 24 Python
Python批量查询域名是否被注册过
Jun 21 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
Python实现程序判断季节的代码示例
Jan 28 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python xlwt模块使用代码实例
Jun 10 Python
django序列化时使用外键的真实值操作
Jul 15 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
如何用Python和JS实现的Web SSH工具
Feb 23 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 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
vue axios 二次封装的示例代码
2017/12/08 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
haskell实现多线程服务器实例代码
2013/11/26 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
python request 模块详细介绍
2020/11/10 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
客服部班长工作责任制
2014/02/25 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
MySQL触发器的使用
2021/05/24 MySQL
SQL中的三种去重方法小结
2021/11/01 SQL Server
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android