issubclass、callable、isinstance和type的区别

issubclass()方法用于判断第一个参数是否是第二个参数的子子孙孙类。

callable()判断对象是否可调用,返回True不一定代表可调用,但是返回False一定不能调用。

type可以获取一个对象的类型,isinstance可以判断一个对象是否是某个类型。但是最大的区别是:
isinstance会认为子类是一种父类类型

class BaseCls():
    pass


class TestCls(BaseCls):
    def __init__(self):
        pass

print(isinstance(TestCls(), BaseCls))
print(type(TestCls())==BaseCls)
print(type(TestCls())==TestCls)
posted @ 2018-07-31 17:15  桥前石头  阅读(106)  评论(0)    收藏  举报