Python实现方便使用的级联进度信息实例
本文实例讲述了Python实现方便使用的级联进度信息的方法。分享给大家供大家参考。具体实现方法如下:
classStepedProgress: '''方便显示进度的级联进度信息。 ''' def__init__(self,stockPercent=[1],parentProgress=None): self.percent=0 self.info='' self.subProgress=[] self.cur_running_process=0 self.stockPercent=stockPercent self.parentProgress=parentProgress #重新计算进度比,防止初始化时的值加起来不是1 w=0.0 forpinself.stockPercent: w+=p foriinrange(0,len(stockPercent)): stockPercent[i]=stockPercent[i]/w #初始化子进度 iflen(stockPercent)==1: self.subProgress=None else: forpinself.stockPercent: self.subProgress.append(StepedProgress(parentProgress=self)) defsubprogress(self,index): ifindex>=self.subcount(): returnself.subProgress[self.subcount()-1] elifindex<self.cur_running_process: returnself.subProgress[self.cur_running_process] else: self.cur_running_process=index returnself.subProgress[index] defsubcount(self): returnlen(self.subProgress) defnotifyParentProgress(self,percent,info=None): new_percent=0.0 foriinrange(0,self.cur_running_process): new_percent+=self.stockPercent[i] new_percent+=percent/100.0*self.stockPercent[self.cur_running_process] new_percent*=100.0 self.notifyProgress(new_percent,info) defnotifyProgress(self,percent,info=None): ifpercent>self.percent: self.percent=percent ifinfoisnotNone: self.info=info ifself.parentProgressisnotNone: self.parentProgress.notifyParentProgress(percent,info) else: printself.info[:77].ljust(80,'.'),"[%0.1f%%]"%self.percent if__name__=="__main__": s=StepedProgress([60,40]) s.notifyProgress(10,'aaa') s1=s.subprogress(0) s1.notifyProgress(50,'bbb') s3=s.subprogress(1) s3=StepedProgress([1,1],parentProgress=s3.parentProgress)#级联子进度 s3.notifyProgress(20,'ddd') s4=s3.subprogress(0) s4.notifyProgress(50,'eee') s5=s3.subprogress(1) s5.notifyProgress(50,'fff')
输出结果:
aaa.............................................................................[10.0%]
bbb.............................................................................[30.0%]
ddd.............................................................................[68.0%]
eee.............................................................................[70.0%]
fff.............................................................................[90.0%]
希望本文所述对大家的Python程序设计有所帮助。