2019年8月18日 getattribue

# import test1 as obj#将tes同重命名为obj,并导入
# print(hasattr(obj,'name'))

import  sys
obj=sys.modules[__name__] #__name__就是当前文件名


print(hasattr(obj,' x'))

 

class Foo:
    x=1
    def __getattribute__(self, item):#不管是否能找到都会运行
        print('执行的是getattribute')
        raise AttributeError('抛出异常')#抛出异常后,getattr才会去运行

    def __getattr__(self, item):
        print('执行getattr')


f1=Foo()

print(isinstance(f1,Foo))#判断f1是否是Foo实例而来

class Bar(Foo):
    pass

print(issubclass(Bar,Foo))#判断bar是否为foo的子类

print(f1.x)

》》》》》

True
True
执行的是getattribute
执行getattr
None

 

posted @ 2019-08-18 07:12  小圣庄  阅读(144)  评论(0编辑  收藏  举报