[英]How to apply isinstance() on objects in a Python dictionary using a For loop
有没有一种方法可以让我对以下代码中是否有从ProjectTypeB
类生成的嵌套对象进行快速True
/ False
?
class Project():
def __init__(self):
self.subProjects={}
def addSubProject(self, child):
child.parent=child
self.subProjects[child.name]=child
class ProjectTypeA():
def __init__(self, name):
self.name=name
class ProjectTypeB():
def __init__(self, name):
self.name=name
#Create instances
a=Project()
a.addSubProject(ProjectTypeA("Project1"))
a.addSubProject(ProjectTypeB("Project2"))
由此,我试图找到一种方法来检查a.subProjects
中的任何对象是否从类ProjectTypeB
实例化(例如)。 我已经尝试了以下方法,但是没有运气:
class Project():
#...
def ProjectTypeB_Specific(self):
with p in self.subProjects:
if isinstance(p, ProjectTypeB):
# Rest of code...
一种快速的方法是通过any
带有生成器表达式的方法:
return any(isinstance(p, ProjectTypeB) for p in self.subProjects)
是的,使用诸如for
的循环结构而不是with
对其进行迭代。 with
用于具有不同用例的上下文管理器。
for p in self.subProjects
if isinstance(p, ProjectTypeB):
# rest of code
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.