码迷,mamicode.com
首页 > 编程语言 > 详细

Python3基础 __delattr__ 在一个属性被删除时的行为

时间:2017-01-20 23:15:52      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:shell   call   back   优秀   att   getattr   ret   erro   desktop   

 镇场诗:
    诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。
    愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。
——————————————————————————————————————————

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基础 __delattr__ 在一个属性被删除时的行为

标签:shell   call   back   优秀   att   getattr   ret   erro   desktop   

原文地址:http://www.cnblogs.com/jinlingzi/p/6329533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!