美文网首页
python基础十一——类的内置attr属性

python基础十一——类的内置attr属性

作者: 我想走走 | 来源:发表于2018-03-05 15:48 被阅读5次
class Feng:
    x = 1
    def __init__(self,y):
        self.y = y
    #调用一个不存在的属性会触发
    def __getattr__(self, item):
        print('执行__getattr__')
    #删除的时候都会触发
    def __delattr__(self, item):
        print('删除操作__delattr__')
    def __setattr__(self, key, value):
        print('__setattr__执行')
        #self.key = value#会进入无限递归
        self.__dict__[key]=value

f1 = Feng(10)
print(f1.y)
print(f1.x)
del f1.x
class Feng:
    def __init__(self,name):
        self.name = name
    #如果不写则系统默认帮你处理加到__dict__中
    def __getattr__(self, item):
        print('你找的属性不存在%s' %item)

    def __setattr__(self, key, value):
        print('执行setattr',key,value)
        if type(value) is str:
            print('setting')
           # self.key = value#此时会造成死循环
            self.__dict__[key] = value
        else:
            print('please to setting')
    def __delattr__(self, item):
      #  del self.item#造成死循环
        self.__dict__.pop(item)
        print('执行删除')
f1 = Feng('fengfeng')
f1.age = 18
f1.gender = 'nv'
print(f1.name)
print(f1.__dict__)
del f1.name

相关文章

  • python基础十一——类的内置attr属性

  • day13面向对象(1)

    01-内置类属性 内置类属性:python中每个类都拥有内置的类属性 02私有化 python中,类和属性的私有化...

  • day014 笔记 08-01

    内置类的属性 python中每个类都拥有内置的类属性。 私有化 python中类中的属性和方法的私有化:直接在属性...

  • 面向对象(基础)

    内置类属性 内置类属性:python中每个类都拥有内置的类属性1.类._name_获取类的名字(str)2.类._...

  • day13-笔记

    1.内置类属性 from color import Color"""内置类属性:python中每个类都拥有内置的类...

  • 13面向对象2

    内置类属性 内置类属性:python中每个类都拥有内置的类属性 1.类.name:获取类的名字(字符串) 2.类....

  • 2018-08-01day-13

    一、内置类属性 内置类属性:python中每个类都拥有内置的类属性namedocdictmodulebases 1...

  • Day12-面向对象

    1、内置类属性 Python中每个类都拥有内置的类属性 类 . __ name __获取类的名字 类 . __ d...

  • day13 面向对象基础2

    01 内置类属性 内置类属性:python中每个类都拥有内置的类属性 __name____doc____dict_...

  • 面向对象2

    一、内置类属性 内置类属性:在python中每个类都有内置的类属性__name____doc____dict___...

网友评论

      本文标题:python基础十一——类的内置attr属性

      本文链接:https://www.haomeiwen.com/subject/umlhfftx.html