调用查找类按要求查找
#################以下模块定义在commce包中##########################
class Commec:
@staticmethod
def function(liststart,func):
for itme in liststart:
if func(itme):
yield itme
###############以下调用commce包中的funcomm模块######################
from commce import funcomm
class Enemy:
def __init__(self,name,hp,atk,defense):
self.name=name
self.hp=hp
self.atk=atk
self.defense=defense
def __str__(self):
return "姓名:%s,--%d---%d--%d"%(self.name,self.hp,self.atk,self.defense)
list01=[Enemy("老妖",89,78,87),
Enemy("山精",200,176,287),
Enemy("青妖",102,96,97),]
#列表里的元素是三个实例对象,所以调用时要用itme.name……
re=funcomm.Commec.function(list01,lambda itme:itme.name=="老妖")
listre=funcomm.Commec.function(list01,lambda itme:itme.hp>98)
for i in listre:
print(i)
#生成器--->惰性操作
#优势:节省内存
#缺点:获取结果不灵活(不能使和索引/切片访问结果)
#解决:惰性操作--->立即操作
list_result=list(listre)#把元素加到列表,可以立即执行
for itme in list_result[:2]:
print(itme)
#查找活的敌人
for itme in funcomm.Commec.function(list01,lambda itme:itme.hp>0):
| 留言与评论(共有 0 条评论) “” |