Python 回调函数研究

回调函数可能会完成各种高级的处理任务, 涉及线程、进程和定时器。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import re


def apply_async(func, args, *, callback):
    result = func(*args)
    callback(result)


def print_result(result):
    print('Got: ', result)


def add(x, y):
    return x + y


# apply_async(add, (2, 3), callback=print_result)
# Got: 5
class ResultHandler:
    def __init__(self):
        self.s = 0

    def handler(self, result):
        self.s += 1
        print('[{}] Got: {}'.format(self.s, result))


r = ResultHandler()

apply_async(add, (2,3), callback=r.handler) # [1] Got: 5
apply_async(add, (2,3), callback=r.handler) # [2] Got: 5

Python dqdm 进度条库初步使用探索

tqdm 是一个简单而且功能强大的进度条库, 可以用来在命令行输出直观并且美观的进度条提示.

这里我使用了简单的一个功能. 用于在每项任务完成后都能刷新进度, 并输出提示


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/python3
from tqdm import trange
import time

f = trange(10)
'更改当前进度条的描述'
f.set_description('I buy something')
'此处的输出不会使进度条换行'
f.write('there too many things')
time.sleep(1)
f.update(1)
f.write('is too hard to cook')
f.set_description('I cook something')
time.sleep(3)
f.update(3)
f.write('Oh my god')
f.set_description('I eat someting')
time.sleep(6)
f.update(6)
'完成后关闭对象'
f.close()

执行效果如下图所示