View difference between Paste ID: JkEFdt1P and 4XELYWhB
SHOW: | | - or go back to the newest paste.
1
import psutil
2
from time import time
3
4
def toggle(decorator):
5
    """ позволить "подключать" и "отключать" декоратор """
6
    def new_decorator(fn):
7
        decorated = decorator(fn)
8
9
        def new_decorated(*x):
10
            if decorator.enabled:
11
                return decorated(*x)
12-
def repeat(times):
12+
            else:
13-
    """ повторить вызов times раз, и вернуть среднее значение """
13+
                return fn(*x)
14-
    def decorator(fn):
14+
15-
        def decorated2(*x):
15+
        return new_decorated
16-
            total = 0
16+
17-
            for i in range(times):
17+
    decorator.enabled = True
18-
                total += fn(*x)
18+
    return new_decorator
19-
            return total / times
19+
20-
        return decorated2
20+
21-
    return decorator
21+
22
        start = time()
23-
@repeat(5)
23+
24
        print "Executing %s took %d ms" % (fn.__name__, (time()-start)*1000)
25
        return result
26
    return decorated
27
28
@toggle(timed)
29
def cpuload():
30
    load = psutil.cpu_percent()
31
    print "cpuload() returns %d" % load
32
    return load
33
34
print "cpuload.__name__==" + cpuload.__name__
35
print "CPU load is %d%%" % cpuload()
36
timed.enabled = False
37
print "CPU load is %d%%" % cpuload()