Python概念-Attr系列(林海峰教的)
这个Attr系列是egon老师自创的,个人还是可以接受这种文化底蕴的,所以直接拿来用,也是毫无违和感的
所谓Attr系列,其实是__setattr__,__delattr__,__getattr__ 三个函数,从名字中可以看出来这是一套设置,删除,查询的函数,那我们来一个一个的看:
__setattr__(self):当对类中的某个属性进行"赋值"时触发的函数
代码示例:
1 class Teacher: 2 def __init__(self): 3 self.name = "Egon" 4 def __setattr__(self, key, value):#当self.name被赋值时出发函数__setattr__ 5 self.__dict__[key] = value #将name:egon存放在self的命名空间中也就是在字典中添加一个键值对(key:value) 6 print(key,"已被赋值:",value) 7 8 te = Teacher()#实例化Teacher类,此时已经出发了self.name的赋值 9 10 #name 已被赋值: Egon
__delattr__(self):当对类中的某个属性进行"删除"时触发的函数
代码示例:
class Teacher:def __init__(self):self.name = "Egon"def __delattr__(self, item):#当self.name被赋值时出发函数__delattr__self.__dict__.pop(item)#将self命名空间中name键连同value一起删除print(item,"已被删除")te = Teacher() del te.name#触发了__delattr__()的方法执行
__getattr__(self):当调用的名字,"没有在实例化对象或类中出现时",触发的函数
代码示例:一定要注意,这里是没有找到名字的时候触发
1 class Teacher: 2 def __init__(self): 3 self.name = "Egon" 4 def __getattr__(self, item):#没有找到属性或方法时,执行次函数 5 print("没有",item,"属性") 6 7 te = Teacher() 8 te.sbegon#很明显Teacher中和te中都是没有sbegon这个属性或方法的,所以触发__getatter__()方法
以上就是Attr系列的小总结
转载于:https://www.cnblogs.com/DragonFire/p/6757604.html
Python概念-Attr系列(林海峰教的)相关推荐
- Python培训基础教程都教哪些
根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...
- Python股票分析系列——基础股票数据操作(二).p4
该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...
- 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型
本文是<TensorFlow从浅入深>系列之第5篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【TensorFlow】TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别
本文是<TensorFlow从浅入深>系列之第3篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- Python股票分析系列——系列介绍和获取股票数据.p1
本系列转载自youtuber sentdex博主的教程视频内容 https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQ ...
- Python框架Flask系列教程(1)——基础-黄勇-专题视频课程
Python框架Flask系列教程(1)--基础-4431人已学习 课程介绍 从初级讲解Flask开发网站.涉及到的知识点包括:URL和视图.Jinja2模版.SQLAlchemy数据 ...
- python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析
Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...
- Python数据分析学习系列 十一 时间序列
Python数据分析学习系列 十一 时间序列 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 时间序列(t ...
- python协程系列(三)——yield from原理详解
声明:本文将详细讲解python协程的实现机理,为了彻底的弄明白它到底是怎么一回事,鉴于篇幅较长,将彻底从最简单的yield说起从最简单的生成器开始说起,因为很多看到这样一句话的时候很懵,即" ...
- NVIDIA Jetson TX1 系列开发教程之二:刷机与开发前准备
NVIDIA Jetson TX1 系列开发教程之二:刷机与开发前准备 转载请注明作者和出处:http://blog.csdn.net/u011475210 嵌入式平台:NVIDIA Jetson T ...
最新文章
- TRIZ发明问题解决理论——本质是分析问题中的矛盾,利用资源(时间空间物质能量功能信息等)来解决矛盾从而解决问题——抽象出来:问题是什么,为什么?...
- 斯坦福-随机图模型-week2.1_
- 修改Intelij IDEA的maven下载地址为国内阿里云镜像
- 使用websockets,后台实时发数据,前台实时接受数据,并集成到Django
- mysql链路跟踪工具_EasySwoole利用链路追踪组件制作甩锅工具
- css兼容性案例:margin-top在IE6/7下失效
- English Voice of I Knew You Were Trouble.
- Silverlight 经典教程书籍汇总
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)(热身赛)
- python中iter是什么意思_python iter()与 __iter__()的区别
- 【物理应用】基于matlab非序贯蒙特卡洛法评估风电系统【含matlab源码 766期】
- hownet与wordnet的区别
- 基于单片机的电子密码锁设计
- win7旗舰版升级成win7SP1
- 基于spss的正态分布正态性检验
- Java中字符串数组转 long[]基本类型数组的方法
- unity如何实现图片透视_实战 | 自己实现扫描全能王
- JS 把 Wed Jul 15 2015 00:00:00 GMT+0800 转换成2015-07-15
- 免费统计微信复制//打开/咨询/下载/表单按钮点击统计工具-好多粉
- 批量将jpg格式图像改为png格式
热门文章
- Confluence导出PDF文件乱码
- mysql busy buffer_buffer busy waits 等待事件
- Linux查看目录busy,linux umount 提示"device is busy" 终极解决
- excel如何快速查询银行卡号实名认证?
- 国外、国内Hadoop的应用现状
- 由内而外全面进化,影像娱乐都出彩,vivo S12 Pro上手
- 树莓派控制超声波测距原理
- matlab l 汉字字符串,Matlab中汉字编码的操作
- 计算机网络有哪三种地址,IP地址的分类有哪几种
- Office2010新体验-基于Office Visio 2010 图表绘制新体验