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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
python定时任务 sched模块用法实例
Nov 04 Python
基于python调用psutil模块过程解析
Dec 20 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
如何在Python中创建二叉树
Mar 30 Python
分享Python获取本机IP地址的几种方法
Mar 17 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 国漫
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
PHP生成带有雪花背景的验证码
2006/10/09 PHP
实用函数5
2007/11/08 PHP
PHP备份/还原MySQL数据库的代码
2011/01/06 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
Python实现栈的方法
2015/05/26 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
pycharm远程调试openstack代码
2017/11/21 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
智能电子应届生求职信
2013/11/10 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
幼儿教师个人总结
2015/02/05 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python