基本类型

  • classinfo可以是,int,float,bool,complex,str(字符串),list,dict(字典),set,tuple

 

1、python对象的类型判断 -- isinstance()

  • isinstance() 函数来判断一个对象是否是一个已知的类型;
  • isinstance() 会认为子类是一种父类类型,考虑继承关系;
  • 如果要判断两个类型是否相同推荐使用 isinstance()。

 

语法:

isinstance(object, classinfo)

参数

  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

返回值

如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False

 

1)基本类型  isinstance()

age = 20
name = "小明"
flag = True
price = 20.01

print(isinstance(age, int))  # True
print(isinstance(name, str))  # True
print(isinstance(flag, bool))  # True
print(isinstance(price, float))  # True

print(isinstance(price, (int, list, str)))   # False, 是元组中的一个返回 True
print(isinstance(age, (int, list, str)))   # True,是元组中的一个返回 True

 

2)自定义类型  isinstance()

  • Father类的对象father,是Father类型;
  • Son类的对象son,是父类Father类型;
  • Son类的对象son,是Son类型;
  • Father类的对象father,不是Son类型;
class Father(object):
    pass

class Son(Father):
    pass

father = Father()
son = Son()
print(isinstance(father, Father))  # True
print(isinstance(son, Father))  # True
print(isinstance(son, Son))  # True
print(isinstance(father, Son))  # False

 

2、python对象的类型判断 -- type()

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

 

1)基本类型  type()

age = 20
name = "小明"
flag = True
price = 20.01
print(type(age) == int)  # True
print(type(name) == str)  # True
print(type(flag) == bool)  # True
print(type(price) == float)  # True
print(type(price) in (int, list, str))   # False, 是元组中的一个返回 True
print(type(age) in (int, list, str))   # True,是元组中的一个返回 True

 

2)自定义类型  type()

  • Father类的对象father,是Father类型;
  • Son类的对象son,是Son类型;
  • Son类的对象son,不是父类Father类型;
  • Father类的对象father,不是Son类型;
class Father(object):
    pass

class Son(Father):
    pass

father = Father()
son = Son()
print(type(father) == Father)  # True
print(type(son) == Son)  # True
print(type(son) == Father)  # False
print(type(father) == Son)  # False

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐