isinstance()函数用法

  isinstance() 函数来判断一个对象是否是一个已知的类型,通常用于判断两个类型是否相同。


isinstance()函数用法_第1张图片


实例:


1. 当输入的 x < y 时,num 的 三元表达式 返回 x 的值 为 100,其类型通过 int 转换后,和 isinstance 的 classinfo params “int” 对比类型,因此得出 为 “ True"


isinstance()函数用法_第2张图片

2. 相反,当输入的 x < y 时,num 的 三元表达式 返回 " x < y " ,其类型为 “str”, 和 isinstance 的 classinfo params “int” 对比类型,因此得出 为 “ False"


isinstance()函数用法_第3张图片


3. 当输入的 x < y 时,num 的 三元表达式 返回 “False” , 和 isinstance 的 classinfo params “int” 对比类型,由于 False 也可以理解为等同于 0, 和 int 类型匹配,因此得出 为 “ True" 。


isinstance()函数用法_第4张图片


4. 当输入的 x < y 时,num 的 三元表达式 返回 “False” , 和 isinstance 的 classinfo params “str” 对比类型, 由于 False 是属于 bool 布尔类型, 好多时会不小心误解为 str。 因此得出 为 “ False " 。


isinstance()函数用法_第5张图片


5. 当输入的 x < y 时,num 的 三元表达式 返回 “False” , 和 isinstance 的 classinfo params “bool” 对比类型,因此得出 为 “ True" 。


isinstance()函数用法_第6张图片


注意: params里,如果classinfo类型为字符串,必须为 str, 如果写成 string, 会报错。


isinstance()函数用法_第7张图片


type() 与 isinstance()区别:

创建 Thursday 类 和 继承Thursday 的 Friday

print(isinstance(Thursday(),Thursday)) #输出结果为 True


print(type(Thursday()) == Thursday) #输出结果为 True


print(isinstance(Friday(),Thursday)) #输出结果为 True, Friday() 继承于 Thursday

print(type(Friday()) == Thursday) #输出结果为 False, type() 函数无法识别子类,父类的继承关系


isinstance()函数用法_第8张图片

你可能感兴趣的:(python)