Python实现动态给类和对象添加属性和方法操作示例


Posted in Python onFebruary 29, 2020

本文实例讲述了Python实现动态给类和对象添加属性和方法操作。分享给大家供大家参考,具体如下:

动态给类和对象添加属性

定义一个Person类

class Person(object):
 def __init__(self, name):
  self.name = name
  • 给对象添加属性
# 创建2个Person,分别为p1,p2
p1 = Person('amy')
print(p1.name)
p1.age = 10   # 给p1对象添加属性
print(p1.age)  # 输出10
p2 = Person('anne')
print(p2.name)  
p2.age = 18   # 给p2对象添加属性
print(p2.age)  # 输出18

运行结果:

amy
10
anne
18

  • 给类添加属性
p1 = Person('amy')
p2 = Person('anne')
Person.sex = 'female'
print(p1.sex) # 输出 female
print(p2.sex) # 输出 female
p2.sex = 'male'
print(p2.sex) # 输出 male

运行结果:

female
female
male

动态给类和对象添加方法

  • 动态给类添加方法
# 在类的外部定义一个sleep函数
p1 = Person('amy')
p2 = Person('anne')
def sleep(self):
 print('%s sleep' % (self.name))
Person.sleep = sleep
Person.sleep(p1)  # 输出 amy sleep
Person.sleep(p2)  # 输出 anne sleep

运行结果:

amy sleep
anne sleep

  • 给对象添加方法
import types # 如果是给对象动态添加方法,需要导入types模块
p = Person('amy')
def eat(self):
 print('%s eat' % (self.name))
p.eat = types.MethodType(eat, p) # 调用MethodType()函数,参数1:方法名,参数2:对象名
p.eat()    # 输出 amy eat

运行结果:

amy eat

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中集合类型(set)学习小结
Jan 28 Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
Python ORM编程基础示例
Feb 02 Python
Python调用Windows命令打印文件
Feb 07 Python
简单了解django文件下载方式
Feb 10 Python
Python修改列表值问题解决方案
Mar 06 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
python获取天气接口给指定微信好友发天气预报
Dec 28 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 Python
Python使用type动态创建类操作示例
Feb 29 #Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 #Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 #Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 #Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 #Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 #Python
Python使用GitPython操作Git版本库的方法
Feb 29 #Python
You might like
php使用cookie保存登录用户名的方法
2015/01/26 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
python实现代理服务功能实例
2013/11/15 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
python3.7添加dlib模块的方法
2020/07/01 Python
python 模块导入问题汇总
2021/02/01 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
婚假请假条怎么写
2014/04/10 职场文书
建材投资建议书
2014/05/16 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle