делает ли это то, что вы хотите?
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()
Возможное улучшение: обнаружение методов, вызываемых по их именам (например, префикс с прогрессом _)