[英]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.