Python 如何获取时间类执行的进度条

Python 如何获取时间类执行的进度条,python,class,progress-bar,Python,Class,Progress Bar,我正在尝试使用进度条显示脚本的进度。我希望它在类中的每个函数执行后都能增加进度。我尝试过的代码如下: import progressbar from time import sleep class hello(): def no(self): print 'hello!' def yes(self): print 'No!!!!!!' def pro(): bar = progressbar.ProgressBar(widgets=

我正在尝试使用进度条显示脚本的进度。我希望它在类中的每个函数执行后都能增加进度。我尝试过的代码如下:

import progressbar
from time import sleep

class hello():
    def no(self):
        print 'hello!'

    def yes(self):
        print 'No!!!!!!'


def pro():
    bar = progressbar.ProgressBar(widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()])

    for i in Yep():
        bar.update(Yep.i())
        sleep(0.1)
    bar.finish()

if __name__ == "__main__":
    Yep = hello()
    pro()

有人知道如何让它工作吗。谢谢

这是你想要的吗

import progressbar
from time import sleep

class hello():
    def no(self):
        print 'hello!'

    def yes(self):
        print 'No!!!!!!'

    def __call__(self) :
        methods = [self.no, self.yes]
        return [ (x[0]*100/len(methods), x[1]) for x in  enumerate(methods) ]

def pro():
    bar = progressbar.ProgressBar(widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()])

    for percent, method in Yep():
        bar.update(percent)
        method()
        sleep(0.1)
    bar.finish()

if __name__ == "__main__":
    Yep = hello()
    pro()
可能的改进:发现要按名称调用的方法(例如,在它们前面加上progress\uux)