我有一个变量 "myvar",当我打印它的 type(myvar)
时,输出是:
<class 'my.object.kind'>
如果我有一个包含字符串和该类变量的10个变量列表.. 我该如何构建一个if语句来检查列表"mylist"中的对象是否为<type 'my.object.kind'>
?如果我有一个包含字符串和这种变量的10个变量列表,我该如何构建一个if语句来检查列表“mylist”中的对象是否为
<type 'my.object.kind'>
?我有一个变量 "myvar",当我打印它的 type(myvar)
时,输出是:
<class 'my.object.kind'>
如果我有一个包含字符串和该类变量的10个变量列表.. 我该如何构建一个if语句来检查列表"mylist"中的对象是否为<type 'my.object.kind'>
?<type 'my.object.kind'>
?使用isinstance
函数,即使是子类的实例,它也会返回True:
if isinstance(x, my.object.kind)
或:type(x) == my.object.kind #3.x
如果您想测试列表中的所有内容:
if any(isinstance(x, my.object.kind) for x in alist)
type(x)
显示 <class 'argparse.Namespace'>
但是 type(x) == argparse.Namespace.kind
报错 *** AttributeError: type object 'Namespace' has no attribute 'kind'
。 - SebMamy.object.kind
是 OP 所拥有的类,而不是指示类型的属性。您应该使用 type(x) == argparse.Namespace
。 - zhangyangyu尝试
if any([isinstance(x, my.object.kind) for x in mylist]):
print "found"
if any(map(lambda x: isinstance(x, my.object.kind), my_list_of_objects)):
print "Found one!"
map
和lambda
,可以使用生成器推导式。 - tobyodavies
my.object.kind
类型的元素吗?还是想获取列表中所有元素的类型? - user2357112isinstance()
是你要寻找的Python内置函数。http://docs.python.org/2/library/functions.html#isinstance - Jonathan Vanasco