Python实现方便使用的级联进度信息实例
程序员文章站
2022-05-12 22:33:00
...
本文实例讲述了Python实现方便使用的级联进度信息的方法。分享给大家供大家参考。具体实现方法如下:
class StepedProgress: '''方便显示进度的级联进度信息。 ''' 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 for p in self.stockPercent: w += p for i in range(0, len(stockPercent)): stockPercent[i] = stockPercent[i]/w # 初始化子进度 if len(stockPercent) == 1: self.subProgress = None else: for p in self.stockPercent: self.subProgress.append(StepedProgress(parentProgress=self)) def subprogress(self, index): if index >= self.subcount(): return self.subProgress[self.subcount()-1] elif index self.percent: self.percent = percent if info is not None: self.info = info if self.parentProgress is not None: self.parentProgress.notifyParentProgress(percent, info) else: print self.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程序设计有所帮助。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频