首页 > 其他 > 详细

2019年8月11日 类的内置attr 函数

时间:2019-08-11 23:18:06      阅读:101      评论:0      收藏:0      [点我收藏+]

类本质也是个对象

class BlackMedium:
    feture=ugly
    def __init__(self,name1,addr):
        self.name=name1
        self.addr=addr

    def sell_hourse(self):
        print(%s正在卖房%self.name)

    def rent_hourse(self):
        print(%s租房子%self.name)

print(hasattr(BlackMedium,sell_hourse))#类本质也是对象,所以也能用attr方法

》》》

True

 

len(str)-->str.__len__()


class Foo:
    x=1
    def __init__(self,y):
        self.y=y

    def __getattr__(self, item):#调用一个不存在的属性时会触发
        print(调用一个不存在的属性时会触发,执行__getattr__)

    def __delattr__(self, item):
        print(删除一个属性时(无论类中是否存在)会触发,执行__delattr__)
       # self.__dict__.pop(item) #底层设置

    def __setattr__(self, key, value):
        print(设置属性时候会触发执行__setattr__)
        # self.key=value#设置属性,如果这么设置会进入无限递归,因为init中有设置
        self.__dict__[key]=value#本质是在操作字典,底层字典进行设置,这样不会进入递归

f1=Foo(10)
print(f1.y)

print(getattr(f1,y)) #eg:

f1.sss
del f1.w
f1.z=2
print(f1.__dict__)
print(dir(Foo))
#dir方法反馈的内置功能最全,从中得知上述3个下划线方法都内置有,
#只不过通过重新def定义改变了原本定义的功能,由此可知对内置函数进行操作,必须对底层进行操作才不会报错

技术分享图片

 





 

2019年8月11日 类的内置attr 函数

原文:https://www.cnblogs.com/python1988/p/11336543.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!