Python实现方便使用的级联进度信息实例

 更新时间:2015年05月05日 10:07:57   作者:鸪斑兔  
这篇文章主要介绍了Python实现方便使用的级联进度信息,实例分析了Python显示级联进度信息的相关技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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.cur_running_process:
      return self.subProgress[self.cur_running_process]
    else:
      self.cur_running_process = index
      return self.subProgress[index]
  def subcount(self):
    return len(self.subProgress)
  def notifyParentProgress(self, percent, info=None):
    new_percent = 0.0
    for i in range(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)
  def notifyProgress(self, percent, info=None):
    if percent > 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程序设计有所帮助。

相关文章

  • Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析

    Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析

    这篇文章主要给大家介绍了关于Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-05-05
  • python分割列表(list)的方法示例

    python分割列表(list)的方法示例

    这篇文章主要给大家介绍了python分割列表(list)的方法,文中给出了详细的示例代码大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Python利用正则表达式匹配并截取指定子串及去重的方法

    Python利用正则表达式匹配并截取指定子串及去重的方法

    这篇文章主要介绍了Python利用正则表达式匹配并截取指定子串及去重的方法,涉及Python正则表达式匹配及字符串截取操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • HTTPX入门使用教程

    HTTPX入门使用教程

    HTTPX是一款Python栈HTTP客户端库,它提供了比标准库更高级别、更先进的功能,如连接重用、连接池、超时控制、自动繁衍请求,下面通过本文介绍HTTPX入门知识和基本用法,感兴趣的朋友一起看看吧
    2023-12-12
  • python数据结构链表之单向链表(实例讲解)

    python数据结构链表之单向链表(实例讲解)

    下面小编就为大家带来一篇python数据结构链表之单向链表(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 如何利用Python将html转为pdf、word文件

    如何利用Python将html转为pdf、word文件

    网络上存在很多将HTML转换为PDF的软件和工具,但是大家都知道收费,所以下面这篇文章主要给大家介绍了关于如何利用Python将html转为pdf、word文件的相关资料,文中通过示例代码介绍介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python向日志输出中添加上下文信息

    Python向日志输出中添加上下文信息

    这篇文章主要介绍了Python向日志输出中添加上下文信息的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • Django学习教程之静态文件的调用详解

    Django学习教程之静态文件的调用详解

    这篇文章主要给大家介绍了关于Django学习教程之静态文件调用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • python中sklearn库predict及python sklearn linearmodel(安装过程)

    python中sklearn库predict及python sklearn linearmodel(

    Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法,今天小编给大家分享python中sklearn库predict的问题,感兴趣的朋友一起看看吧
    2024-02-02
  • python中playwright结合pytest执行用例的实现

    python中playwright结合pytest执行用例的实现

    本文主要介绍了python中playwright结合pytest执行用例的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论