开发中类型变量判断会经常遇到,不确定的情况下直接调用往往会提示类型不符合错误。python中如何判断变量的类型,如判断某个变量是否为列表类型?

下面介绍三种方法判断:

(1)、python中type()函数可以获取变量的类型,注意这个返回值是对象类型的,如果想要判断的话,可以通过返回值对象的 __name__属性来判断

aa=32
print(type(aa).__name__,type(aa).__name__=='int') #输出为 int True

type()返回值对象的__name__值常见的有:int 整形、float 浮点数、str 字符串、list 列表、tuple 元组、bool 布尔值、set 集合、dict 字典


(2)、通过与已知类型的常量进行比较

如判断是否为整形,可以用 

aa=32
bb="python"
print(type(aa)==type(1))
#如果输出为真,则判断变量为整形,其他类型类似,如判断是否为字符串 print(type(bb)==type('hello'))

(3)、通过isinstance()函数判断,因为python中变量类型都是对象,通过是否为python中变量类型的继承关系来判断

aa=[1,2,3]
if isinstance(aa,list):
    print('当前变量为列表对象')
elif isinstance(aa,str):
    print('当前变量为字符串对象')

下面封装一个函数来判断变量的类型

def getType(variate):
    arr=((bool,'布尔值'),(complex,'复数'),(int,'整形'),(float,'浮点数'),(str,'字符串'),(list,'列表'),(tuple,'元组'),(set,'集合'),(dict,'字典'))
    for types in arr:
        if isinstance(variate,types[0]):
            #return types[1] #只输出类型汉字
            return (types[0].__name__,types[1])
    else:
        return (type(variate).__name__,'其它类型')
print(getType(11))
print(getType('python'))


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
返回
顶部