# 关于type()方法 与 isinstance()方法 的区别?
print(type("aaa")) # 判断一个对象的直接类
print(isinstance("aaa",str)) # True 判断一个对象 是否是一个类的实例 ,支持继承的类

class A:
pass

class B(A):
pass

a = A()
b = B()

print(type(a)) # <class '__main__.A'> type()方法,返回的是对象的直接类
print(type(b)) # <class '__main__.A'>

print(type(a) is A) # True
print(type(b) is B) # True

print(isinstance(a,A)) # True
print(isinstance(b,A)) # True

# 最后,总结成词,type()方法,获取对象的直接类,即创建这个对象的类,
# 而isinstance()方法,判断一个对象 是否是它的直接类,或直接类的父类的实例
# 假设,现在有两个类 class A 和 class B ,且 class B 继承 class A ,那么当我通过 B(),实例化了一个B类的对象b,
# 这时 b 既是B类的实例 ,也是B类的父类A 的实例 。
posted on 2018-08-30 18:02  yellwonfin  阅读(95)  评论(0编辑  收藏  举报