class MyPipe: def __init__(self,): self._result = [] self.args,self.kws = (),{} self.i,self.x = None,None self.iret = None def push(self,ret): self._result.append(ret) def pop(self,): try: return self._result.pop() except: return None def clearAll(self,): self._result.clear() def trimResultsBy(self,x=None): while self._result and self._result[-1]==x: self._result.pop() def top(self,): try: return self._result[-1] except: return None @property def ret(self,): try: return self._result[-1] except: return None @ret.setter def ret(self,x): self._result.append(x) @property def rlen(self,): return len(self._result) @property def byret(self,): self._result.append(self._result.copy()) return self def pipe(self,func,*args,**kws): self.args,self.kws = args,kws self._result.append(func(self)) return self def mapT(self,func,*args,**kws): self.args,self.kws = args,kws self._result.append(list(func(self)for self.i,self.x in enumerate(self._result[-1]))) return self def mapL(self,func,*args,**kws): self.args,self.kws = args,kws self._result.append(tuple(func(self)for self.i,self.x in enumerate(self._result[-1]))) return self def filterT(self,func,*args,**kws): self.args,self.kws = args,kws;self.iret = None self._result.append(list(self.iret for self.i,self.x in enumerate(self._result[-1])if func(self))) return self def filterL(self,func,*args,**kws): self.args,self.kws = args,kws;self.iret = None self._result.append(tuple(self.iret for self.i,self.x in enumerate(self._result[-1])if func(self))) return self def aggr(self,func,*args,**kws): self.args,self.kws = args,kws;self.iret = None for self.i,self.x in enumerate(self._result[-1]): self.iret = func(self) self._result.append(self.iret) return self def all(self,func,*args,**kws): self.args,self.kws = args,kws self._result[-1] and self._result.append(func(self)) return self def any(self,func,*args,**kws): self.args,self.kws = args,kws not self._result[-1] and self._result.append(func(self)) return self (MyPipe() .pipe(func,*args,**kws) .aggr(func,*args,**kws) .map(func,*args,**kws) .filter(func,*args,**kws) .all(func,...) .all(func,...) .any(func,...) .any(func,...) )
python/utilities/[2020-02-20]
猜你喜欢
转载自www.cnblogs.com/GCxokoA/p/12336763.html
今日推荐
周排行