这个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系列(林海峰教的)相关推荐

  1. Python培训基础教程都教哪些

    根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...

  2. Python股票分析系列——基础股票数据操作(二).p4

    该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...

  3. 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型

    本文是<TensorFlow从浅入深>系列之第5篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  4. 【TensorFlow】TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别

    本文是<TensorFlow从浅入深>系列之第3篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  5. Python股票分析系列——系列介绍和获取股票数据.p1

    本系列转载自youtuber sentdex博主的教程视频内容 https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQ ...

  6. Python框架Flask系列教程(1)——基础-黄勇-专题视频课程

    Python框架Flask系列教程(1)--基础-4431人已学习 课程介绍         从初级讲解Flask开发网站.涉及到的知识点包括:URL和视图.Jinja2模版.SQLAlchemy数据 ...

  7. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  8. Python数据分析学习系列 十一 时间序列

    Python数据分析学习系列 十一 时间序列 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 时间序列(t ...

  9. python协程系列(三)——yield from原理详解

    声明:本文将详细讲解python协程的实现机理,为了彻底的弄明白它到底是怎么一回事,鉴于篇幅较长,将彻底从最简单的yield说起从最简单的生成器开始说起,因为很多看到这样一句话的时候很懵,即" ...

  10. NVIDIA Jetson TX1 系列开发教程之二:刷机与开发前准备

    NVIDIA Jetson TX1 系列开发教程之二:刷机与开发前准备 转载请注明作者和出处:http://blog.csdn.net/u011475210 嵌入式平台:NVIDIA Jetson T ...

最新文章

  1. TRIZ发明问题解决理论——本质是分析问题中的矛盾,利用资源(时间空间物质能量功能信息等)来解决矛盾从而解决问题——抽象出来:问题是什么,为什么?...
  2. 斯坦福-随机图模型-week2.1_
  3. 修改Intelij IDEA的maven下载地址为国内阿里云镜像
  4. 使用websockets,后台实时发数据,前台实时接受数据,并集成到Django
  5. mysql链路跟踪工具_EasySwoole利用链路追踪组件制作甩锅工具
  6. css兼容性案例:margin-top在IE6/7下失效
  7. English Voice of I Knew You Were Trouble.
  8. Silverlight 经典教程书籍汇总
  9. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)(热身赛)
  10. python中iter是什么意思_python iter()与 __iter__()的区别
  11. 【物理应用】基于matlab非序贯蒙特卡洛法评估风电系统【含matlab源码 766期】
  12. hownet与wordnet的区别
  13. 基于单片机的电子密码锁设计
  14. win7旗舰版升级成win7SP1
  15. 基于spss的正态分布正态性检验
  16. Java中字符串数组转 long[]基本类型数组的方法
  17. unity如何实现图片透视_实战 | 自己实现扫描全能王
  18. JS 把 Wed Jul 15 2015 00:00:00 GMT+0800 转换成2015-07-15
  19. 免费统计微信复制//打开/咨询/下载/表单按钮点击统计工具-好多粉
  20. 批量将jpg格式图像改为png格式

热门文章

  1. Confluence导出PDF文件乱码
  2. mysql busy buffer_buffer busy waits 等待事件
  3. Linux查看目录busy,linux umount 提示"device is busy" 终极解决
  4. excel如何快速查询银行卡号实名认证?
  5. 国外、国内Hadoop的应用现状
  6. 由内而外全面进化,影像娱乐都出彩,vivo S12 Pro上手
  7. 树莓派控制超声波测距原理
  8. matlab l 汉字字符串,Matlab中汉字编码的操作
  9. 计算机网络有哪三种地址,IP地址的分类有哪几种
  10. Office2010新体验-基于Office Visio 2010 图表绘制新体验