Python3基础 __getattr__ 在访问一个不存在的属性时,新增提示功能
2017-01-20 22:20
381 查看
镇场诗:
清心感悟智慧语,不着世间名与利。学水处下纳百川,舍尽贡高我慢意。
学有小成返哺根,愿铸一良心博客。诚心于此写经验,愿见文者得启发。
——————————————————————————————————————————
code:
result:
——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。Python版本3.5,系统 Windows7。
Python是优秀的语言,值得努力学习。我是跟着小甲鱼视频教程学习的,推荐。
我是一个新手,所以如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取成就一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。
清心感悟智慧语,不着世间名与利。学水处下纳百川,舍尽贡高我慢意。
学有小成返哺根,愿铸一良心博客。诚心于此写经验,愿见文者得启发。
——————————————————————————————————————————
code:
class MyClass : def __init__(self,work) : self.work=work #真是敬佩小甲鱼老师,他是怎么想到这么写的,巧妙呀 def __getattribute__(self,name) : print("你正在访问一个存在的属性") return super().__getattribute__(name) def __getattr__(self,name) : print("你正在访问一个不存在的属性") return super().__getattr__(name) def __setattr__(self,name,value) : print("你正在设置一个存在的属性的值") return super().__setattr__(name,value) def __delattr__(self,name) : print("你正在删除一个属性") return super().__delattr__(name)
result:
>>> a=MyClass(1) 你正在设置一个存在的属性的值 >>> a.NotExist #注意优先级 你正在访问一个存在的属性 你正在访问一个不存在的属性 Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> a.NotExist #注意优先级 File "C:\Users\Administrator\Desktop\myCode.py", line 11, in __getattr__ return super().__getattr__(name) AttributeError: 'super' object has no attribute '__getattr__' >>> a.work=1 你正在设置一个存在的属性的值 >>> del a.work 你正在删除一个属性
——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。Python版本3.5,系统 Windows7。
Python是优秀的语言,值得努力学习。我是跟着小甲鱼视频教程学习的,推荐。
我是一个新手,所以如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取成就一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。
相关文章推荐
- Python3基础 __getattribute__ 在访问一个存在的属性时,新增提示功能
- Python3基础 __setattr__ 在一个属性被设置的时候,新增提示功能
- Python3基础 delattr 删除对象的一个属性 如果属性不存在,就抛出异常
- Python3基础 setattr 设置对象的属性的值,如果属性不存在就创建一个
- Python3基础 try-指定except-as reason 捕获打开一个不存在的文件的时候,会产生OSError异常的示例
- Python3基础 一个类中 属性与方法重名时,属性会覆盖方法 基本示例
- Python3基础 一个类中有两个属性A,B。 只能对其中的一个进行赋值
- 一个程序理解python的类属性和实例属性(共有属性和私有属性的访问区别)
- 功能新增:在流程属性的增加了一个重新生成流成标题的功能.
- 解决python模块调用时代码中使用相对路径访问的文件,提示文件不存在的问题
- Python3基础 getatime getctime getmtime 获取一个文件的最近访问时间 创建时间 最新修改时间
- Python3基础 getattr 获取一个对象的指定属性值
- 功能新增:在流程属性的增加了一个重新生成流成标题的功能.
- Python基础:新式类的属性访问
- Python 面向对象编程基础(定义类并创建实例、创建实例属性、初始化实例属性、访问限制、类属性、属性名冲突、实例方法、类方法)
- Python3基础 hasattr 测试一个对象是否有指定的属性
- Python3基础 int input提示用户输入一个整数并接受用户输入
- python 基础——实现一个带缓存功能的函数
- Python3基础 property 通过一个属性去设置另外一个属性
- mx:states包含mx:AddChild 在切换时提示错误"TypeError: Error #1009: 无法访问空对象引用的属性或方法"的解决方法