Python面向对象之类的内置attr属性示例


Posted in Python onDecember 14, 2018

本文实例讲述了Python面向对象之类的内置attr属性。分享给大家供大家参考,具体如下:

这个比较简单。

代码示例:

# -*- coding:utf-8 -*-
#! python3
class Foo:
  x = 1;
  def __init__(self,y):
    self.y = y;
  def __getattr__(self,item):
    print('----->from getattr:你找的属性不存在')
  def __setattr__(self, key, value):
    print('----> from setattr')
    #self.key = value   
    # 正常思维设置,但是只要设置属性就会触发这个方法,从而进入死递归,
    # 所以考虑从字典的属性入手修改属性值。
    self.__dict__[key] = value
  def __delattr__(self,item):
    print('----->from delattr')
    #del self.item
    #这个也是同样的道理,会进入死递归
    self.__dict__.pop(item)
#_setattr_添加/修改属性会触发它的执行
f1 = Foo(10)
print(f1.__dict__)  #因为你重写了__setattr__,凡是赋值操作都会触发它的运行,你啥都没写,就是根本没赋值
           #除非你直接操作属性字典,否则无法赋值 
f1.z = 3
print(f1.__dict__)
#__delattr__删除属性的时候会触发
f1.__dict__['a'] = 3  #可以直接修改对象的属性字典,来完成添加/修改属性的操作
del f1.a
print(f1.__dict__)

运行结果:

----> from setattr
{'y': 10}
----> from setattr
{'y': 10, 'z': 3}
----->from delattr
{'y': 10, 'z': 3}
       
内置attr属性有三个:__getattr__,___setattr__,__delattr__

如果不重写,那么就用系统默认的。

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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

Python 相关文章推荐
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
python交互式图形编程实例(二)
Nov 17 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
Django开发的简易留言板案例详解
Dec 04 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
详解Python绘图Turtle库
Oct 12 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
Python实现随机爬山算法
Jan 29 Python
python模糊图片过滤的方法
Dec 14 #Python
python 随机打乱 图片和对应的标签方法
Dec 14 #Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 #Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 #Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 #Python
用python爬取租房网站信息的代码
Dec 14 #Python
从运行效率与开发效率比较Python和C++
Dec 14 #Python
You might like
一个程序下载的管理程序(一)
2006/10/09 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
python实现定时播放mp3
2015/03/29 Python
Python中__name__的使用实例
2015/04/14 Python
Python判断Abundant Number的方法
2015/06/15 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
汽车专业学生自我评价
2014/01/19 职场文书
学校消防安全制度
2014/01/30 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
高中军训感想
2015/08/07 职场文书
会计专业自荐信范文
2019/05/22 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
详解mysql三值逻辑与NULL
2021/05/19 MySQL
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js