python 之isinstance用法

isinstance() 函数来判断一个对象是否是一个已知的类型类似 type()。

isinstance() 与 type() 区别:

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

如果要判断两个类型是否相同推荐使用 isinstance()。

语法

isinstance(object, classinfo)

参数

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

>>>a = 2

>>> isinstance (a,int) True

>>> isinstance (a,str) False

>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True True

对于基本类型来说 classinfo 可以是:

int,float,bool,complex,str(字符串),list,dict(字典),set,tuple

要注意的是,classinfo 的字符串是 str 而不是 string,字典也是简写 dict

实例

arg=123
isinstance(arg, int)    #输出True
isinstance(arg, str)    #输出False
isinstance(arg, string) #报错

用于判断是否是一个类的继承关系
class A:
    pass

class B(A):
    pass

isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

可以在接受参数的时候 来校验参数类型

原文地址:https://www.cnblogs.com/tangda/p/12299141.html

时间: 2024-10-06 22:28:31

python 之isinstance用法的相关文章

Python中 isinstance()用法 判断对象的类型

isinstance(p_object, class_or_type_or_tuple):判断对象的类型 a=123 ret=isinstance(a,int) print(ret) #输出:True li=[2,57,4] ret1=isinstance(li,list) print(ret1) #输出:True  

python之函数用法isinstance()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isinstance() #isinstance() #说明:返回一个布尔值,判断数据类型 ''' isinstance(...) isinstance(object, class-or-type-or-tuple) -> bool object:一个对象 class-or-type-or-tuple:类/基本类型/元组,可以只传一个数据类型,也可以同时传递多个数据类型 bool:返

【Python】关于Python有意思的用法

开一篇文章,记录关于Python有意思的用法,不断更新 1.Python树的遍历 1 def sum(t): 2 tmp=0 3 for k in t: 4 if not isinstance(k,list): 5 tmp+=k 6 else: 7 tmp+=sum(k) 8 return tmp 9 if __name__=='__main__': 10 x=[1,[2,[3,4,5,[6,7,[8,9]]]]] 11 t=sum(x) 12 print(t)

python   __name__=='__main__' 用法

python 文件的后缀为.py,比如 name.py python 文件可以直接执行,也可以被导入.调用,比如import name; script 1: #!/bin/python # Filename:name.py if __name__=='__main__':     print 'This program is being run by itself' else:     print 'I am being imported from another module' script

python之函数用法capitalize()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法capitalize() #capitalize() #说明:将字符串的第一个字母变成大写,其他字母变小写. ''' capitalize(...) S.capitalize() -> string Return a copy of the string S with only its first character capitalized. ''' #案例 str='xiaoden

python之函数用法setdefault()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法setdefault() #D.get(k,d) #说明:k在D中,则返回 D[K],如果k不在D中,则返回d值 #D.get(k,d), also set D[k]=d if k not in D ''' >>> help(dict.setdefault) Help on built-in function setdefault: setdefault(...) D.set

python之函数用法islower()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法islower() #http://www.runoob.com/python/att-string-islower.html #islower() #说明:检测字符串是否都由小写字母组成 str = "THIS is string example....wow!!!" print str.islower()#False str = "this is string

python之函数用法xrange()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法xrange() #xrange() #说明:返回一个生成器 #xrange做循环的性能比range好,尤其是返回很大的时候.除非要返回一个列表,则用range. ''' class xrange(object) | xrange(stop) -> xrange object | xrange(start, stop[, step]) -> xrange object | | Li

python之函数用法startswith()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法startswith() #http://www.runoob.com/python/att-string-startswith.html #startswith() #说明:返回布尔值,用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False. ''' startswith(...) S.startswith(prefix[, start[, end]]