我在一个名为pool的列表中有一个实体列表(一个只包含ID的类,以及稍后混合添加的组件的属性。),它包含工厂创建的每个实体。
这个工厂还有一个方法可以为每个实体提供某些组件:
def list(self, Search_ID = []):
"""
Return a filtered list of the entities with certain components. If components
are not given to the method, simply return all entities.
"""
for entity in self.pool:
if entity.has(Search_ID) is True:
yield entity
当搜索多个组件时,此代码变得非常快。这与x.list(["position", "name"])
类似,用于生成具有位置和名称的池列表中的每个组件。
has方法如下:
def has(self, c_list = []):
"""
Returns true if this entity has all the listed components within
c_list.
"""
for component in c_list:
if not hasattr(self, component):
return False
return True
我想知道是否有更多的pythonic和有效的方式来覆盖所有这些信息,而不是仅仅迭代列表。