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远程登录代码
Apr 29 Python
python链接Oracle数据库的方法
Jun 28 Python
浅谈Python中的闭包
Jul 08 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
Python 存储字符串时节省空间的方法
Apr 23 Python
python pygame实现五子棋小游戏
Oct 26 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
Python 实现将某一列设置为str类型
Jul 14 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 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
基于mysql的论坛(3)
2006/10/09 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
js生成随机数之random函数随机示例
2013/12/20 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
Djang中静态文件配置方法
2015/07/30 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
土木工程应届生求职信
2013/10/31 职场文书
诚信承诺书模板
2014/05/26 职场文书
教研处工作方案
2014/05/26 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
学生检讨书
2015/01/27 职场文书
全国爱牙日活动总结
2015/02/05 职场文书