join_mark

 

python 类中的instance、issubclass 、getattrbute的用法

# instance、issubclass 、getattrbute的用法

# class Foo:
# pass
# f1=Foo()
# #判断实例f1是否是Foo的实例
# print(isinstance(f1,Foo))
# #判断类Bar是否从Foo的继承过过来的
# class Bar(Foo):
# pass
# print(issubclass(Bar,Foo))
# b1=Bar()
# print(isinstance(b1,Bar)) #True
# print(isinstance(b1,Foo)) #True
# print(type(b1)) #<class '__main__.Bar'>


# getattrbute 不能有没有找到指定的变量或函数,都会执行getattrbute,而不会去执行getattr
# class Foo:
# def __init__(self,x):
# self.x=x
# def __getattr__(self, item):
# print('执行的是getattr...')
#
# def __getattribute__(self, item):
# print('执行的是getattrbute...')
##自定义:抛出异常,可以结束getattrbute,再跳到getattr,如果不定义函数会在此处结束掉,相当于程序奔溃
# raise AttributeError('抛出异常了')
#
# f1=Foo(10)
# f1.x #存在的时候
# f1.ee #不存在的时候

posted on 2018-07-22 11:10  join_mark  阅读(200)  评论(0)    收藏  举报

导航