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 相关文章推荐
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
python按比例随机切分数据的实现
Jul 11 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
Python devel安装失败问题解决方案
Jun 09 Python
Python包和模块的分发详细介绍
Jun 19 Python
Python数据可视化实现多种图例代码详解
Jul 14 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
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
Angular实现form自动布局
2016/01/28 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
对Python 数组的切片操作详解
2018/07/02 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
解决pip install psycopg2出错问题
2020/07/09 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
银行员工职业规划范文
2014/01/21 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
python中取整数的几种方法
2021/11/07 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js