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批量修改文件名的实现代码
Sep 01 Python
朴素贝叶斯算法的python实现方法
Nov 18 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
python实现浪漫的烟花秀
Jan 30 Python
python学习开发mock接口
Apr 28 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python @classmethod 的使用场合详解
Aug 23 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
深入理解Pytorch微调torchvision模型
Nov 11 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并发访问实例代码
2012/09/06 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python多线程学习资料
2012/12/19 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
详解python运行三种方式
2019/05/13 Python
django如何通过类视图使用装饰器
2019/07/24 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
银行求职自荐信
2014/06/30 职场文书
擅自离岗检讨书
2014/09/12 职场文书
捐助倡议书
2015/01/19 职场文书
小学中队长竞选稿
2015/11/20 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
《检阅》教学反思
2016/02/22 职场文书
vue 实现上传组件
2021/05/31 Vue.js