为什么isinstance()方法返回True(Python 3.xx)
我还不太熟悉Python的OOP方面,所以这有点超出我的理解范围为什么isinstance()方法返回True(Python 3.xx),python,python-3.x,Python,Python 3.x,我还不太熟悉Python的OOP方面,所以这有点超出我的理解范围 >>> a=[[2,3,4]] >>> types = (list,str,int,str,int) >>> b=isinstance(a,types) True 无论在列表类型之后添加什么类型,表达式总是返回True 我已经读过isinstance()方法接受派生类类型,但我无法说服自己我知道这里发生了什么 这也是真的。是因为这三个人都属于同一个班级吗 >>&
>>> a=[[2,3,4]]
>>> types = (list,str,int,str,int)
>>> b=isinstance(a,types)
True
无论在列表类型之后添加什么类型,表达式总是返回True
我已经读过isinstance()
方法接受派生类类型,但我无法说服自己我知道这里发生了什么
这也是真的。是因为这三个人都属于同一个班级吗
>>> isinstance([], (tuple, list, set))
True
这是因为当您将一个类型的元组作为第二个参数提供给isinstance时,它将作为“OR”(或any)工作,如果第一个参数的类型是该元组中的任何类型,它将返回True 范例-
>>> isinstance('asd',(str,bool,int))
True
这是因为当您将一个类型的元组作为第二个参数提供给isinstance时,它将作为“OR”(或any)工作,如果第一个参数的类型是该元组中的任何类型,它将返回True 范例-
>>> isinstance('asd',(str,bool,int))
True
文档字符串:
isinstance(object, class-or-type-or-tuple) -> bool
返回对象是类的实例还是其子类的实例。
使用类型作为第二个参数,返回该类型是否为对象的类型。
使用元组的表单,isinstance(x,(a,B,…)
,是以下内容的快捷方式:
isinstance(x, A) or isinstance(x, B) or ... (etc.).
类型:内置函数或方法
因此,它实际上是一个或语句。很清楚,对吧
文档字符串:
isinstance(object, class-or-type-or-tuple) -> bool
返回对象是类的实例还是其子类的实例。
使用类型作为第二个参数,返回该类型是否为对象的类型。
使用元组的表单,isinstance(x,(a,B,…)
,是以下内容的快捷方式:
isinstance(x, A) or isinstance(x, B) or ... (etc.).
类型:内置函数或方法
因此,它实际上是一个或语句。非常清楚,对吗?< p>尽管列表中的代码>[][/]>被认为是Python中的一个迭代器,就像元组、字典和SET一样,它不是从同一个基础类派生出来的(除非你考虑<代码>对象< /代码>作为基本类型,这对于每种类型都非常重要)。
试试这个:
>>> [].__class__
<type 'list'>
>>> ().__class__
<type 'tuple'>
>>> {}.__class__
<type 'dictionary'>
>>> [].__class__.__bases__
<type 'object'> # yeah sure
像tuple
和list
这样的类不是从同一个基类派生的子类,它们都只是通过提供\uu inter\uuuuuuu()
和\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()
方法来遵守的协议。这是一个漂亮的鸭子打字。< p>虽然列表中的代码>[][/]>被认为是Python中的一个迭代器,就像元组、字典和集合一样,它不是从同一个基础类派生出来的(除非你考虑<代码>对象< /代码>作为基本类型,这对于每种类型都非常重要)。
试试这个:
>>> [].__class__
<type 'list'>
>>> ().__class__
<type 'tuple'>
>>> {}.__class__
<type 'dictionary'>
>>> [].__class__.__bases__
<type 'object'> # yeah sure
像tuple
和list
这样的类不是从同一个基类派生的子类,它们都只是通过提供\uu inter\uuuuuuu()
和\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()
方法来遵守的协议。这是鸭子打字的妙处。这是真的
if。如果它是真的
如果它是真的
如果。你认为如果