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程序设计有所帮助。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Scapy Crawlerを使用する場合、パイプラインの永続的なストレージファイルを書くことができない理由は?ディスカッションデータクローラーにScapy Crawlerを使用することを学ぶとき、あなたはしばしば...

Python Process Poolは、クライアントが立ち往生する原因となる同時TCP要求を処理します。ネットワークプログラミングにPythonを使用する場合、同時のTCP要求を効率的に処理することが重要です。 ...

python functools.partialオブジェクトのpython functools.partialを使用してPythonを使用する視聴方法を深く探索します。

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

多くの開発者はPypi(PythonPackageIndex)に依存しています...
