python2 type()函数 isinstance()函数

本文,我们结合python2代码,学习type()函数 isinstance()函数.

1》type()函数
通过type()函数,可以得到一个对象的类型,请看以下示例:
>>> a=8
>>> type(a)
<type 'int'>

>>> a1=67l

>>> type(a1)
<type 'long'>
>>> a2=67L
>>> type(a2)
<type 'long'>
>>> b=9.7
>>> type(b)
<type 'float'>
>>> s='love'
>>> type(s)
<type 'str'>
>>> l=[2,3,4]
>>> type(l)
<type 'list'>
>>> t=(4,5,6)
>>> type(t)
<type 'tuple'>
>>> d={'j':1,'k':2}
>>> type(d)
<type 'dict'>

2》isinstance()函数
isinstance()函数说明如下:
>>> help(isinstance)
Help on built-in function isinstance in module __builtin__:

isinstance(...)
    isinstance(object, class-or-type-or-tuple) -> bool
    
    Return whether an object is an instance of a class or of a subclass thereof.
    With a type as second argument, return whether that is the object's type.
    The form using a tuple, isinstance(x, (A, B, ...)), is a shortcut for
    isinstance(x, A) or isinstance(x, B) or ... (etc.).

第一个参数是:对象(python中一切皆对象)
第二个参数是:自定义的类类型python标准数据类型(int,long,float,list,tuple,dict,str,bool,complex) 或 由二者构成的元组
总结,参数一是对象,参数二是must be a class, type, or tuple of classes and types

2.1>第二个参数是自定义的类类型,对象的类型与参数二的类型相同或对象的类型是参数二的子类就返回True
class A:
    pass
class B:
    pass
class C(A):
    pass
obj=C()

>>> isinstance(obj,C) #对象obj的类型是C,与参数二一致,返回True
True
>>> isinstance(obj,B)#对象obj的类型是C,与参数二不一致,且C不是B的子类,返回 False
False
>>> isinstance(obj,A)#对象obj的类型是C,与参数二不一致,但C是A的子类,返回True
True


2.2》第二个参数是python标准数据类型,对象的类型与参数二的类型相同则返回True。
>>> isinstance(2,int)

True

>>> isinstance(3L,long)
True
>>> isinstance(3l,long)
True

>>> isinstance(8.9,float)
True
>>> isinstance(True,bool)
True
>>> isinstance('love',str)
True
>>> isinstance(2+3j,complex)
True
>>> isinstance((2,3,4),tuple)
True
>>> isinstance([3,4,5],list)
True
>>> isinstance({'a':1,'b':2},dict)
True
2.3》第三个参数是二者构成的元组,对象的类型在元组中或对象类型的父类在元组中,就返回True。
class A:
    pass
class B:
    pass
class C(A):
    pass
obj=C()

>>> isinstance(obj,(int,str,C,B))#对象obj的类型是C,第二个参数中包含C,因此返回True
True
>>> isinstance(obj,(int,str,A,B))#对象obj的类型是C,C的父类(超类)是A,第二个参数中包含A,因此返回 True
True
>>> isinstance(obj,(int,str,B))#对象obj的类型是C,C的父类是A,C与A均不在参数二中,因此返回False
False

(完)

### 回答1: type和isinstance都是Python中用于判断数据类型的函数type函数用于返回一个对象的类型,可以用于判断一个对象是否为某个类型,例如: ``` a = 1 print(type(a) == int) # True ``` isinstance函数用于判断一个对象是否为某个类或其子类的实例,例如: ``` class A: pass class B(A): pass b = B() print(isinstance(b, A)) # True print(isinstance(b, B)) # True ``` ### 回答2: 在Python中,type和isinstance都是用于检查对象的类型的函数type函数是内置函数,它可以用来返回一个对象的类型。它的使用方式是type(obj),其中obj是要检查的对象。type函数会返回一个type对象,该对象表示obj的类型。举个例子,如果我们有一个字符串对象s,可以使用type(s)来检查s的类型,如果返回值是<class 'str'>,则说明s是一个字符串类型的对象。 isinstance函数也是内置函数,它用于判断一个对象是否是特定类型或其子类的实例。isinstance函数的使用方式是isinstance(obj, cls),其中obj是要检查的对象,cls是要检查的类型。该函数会返回一个布尔值,如果obj是cls类型的对象或其子类的实例,则返回True,否则返回False。举个例子,如果我们有一个列表对象lst,可以使用isinstance(lst, list)来判断lst是否属于列表类型,如果返回值是True,则说明lst是一个列表类型的对象。 虽然type和isinstance都可以用来检查对象的类型,但两者的使用情境略有不同。type函数主要用于返回对象的类型信息,通常用于简单的类型检查。而isinstance函数则可以判断对象的类型是否满足特定条件,通常用于更为复杂的类型判断或类型转换。根据具体的需求,选择合适的函数可以帮助我们更好地操作和处理对象。 ### 回答3: 在Python中,type()和isinstance()都用于判断对象的类型,但它们有一些不同之处。 type()函数Python的内置函数之一,它用于返回一个对象的类型。例如,type(3)将返回<class 'int'>,而type('hello')将返回<class 'str'>。在Python中,所有的类型都是对象,类也是对象,因此type()函数可以用来判断对象的类型是否为某个具体的类型。例如,判断一个对象是否为整数可以使用type(obj) == int。 isinstance()函数也是Python的内置函数之一,它用于判断一个对象是否为某个类或其子类的实例。例如,isinstance(3, int)返回True,因为3是整数的实例。此外,isinstance(obj, (A, B, C))可以用来判断一个对象是否为多个类或其子类的实例。例如,isinstance('hello', (str, int))返回True,因为字符串可以被看作是str类的实例,也可以被看作是int类的实例。 总结起来,type()函数用于返回对象的类型,可以用来判断对象是否为某个具体的类型;而isinstance()函数用于判断一个对象是否为某个类或其子类的实例,可以用来判断对象是否属于多个类中的任意一个。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值