-
Notifications
You must be signed in to change notification settings - Fork 0
/
decoratori.py
62 lines (44 loc) · 1.17 KB
/
decoratori.py
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import time
class Sabiranje:
def __call__(self, a, b):
return a + b
def stampac(func):
def odstampana_func(a, b):
print(f"Ulazni parametri su {a} i {b}")
return func(a, b)
return odstampana_func
def kesiranje(func):
print("Sada je u kesiranju")
parameters = {}
def new_func(a, b):
if (a, b) not in parameters:
parameters[(a, b)] = func(a, b)
return parameters[(a, b)]
return new_func
def vreme(func):
def nova_funkcija(a, b):
start_time = time.time()
res = func(a, b)
end_time = time.time()
vreme_izvrsenja = end_time - start_time
print(f"Vreme izvrsenja : {vreme_izvrsenja} ")
return res
return nova_funkcija
@vreme
@kesiranje
def oduzimanje(a, b):
time.sleep(1)
return a - b
def main():
# sub = Sabiranje()
# print(Sabiranje()(1, 2))
# start_time = time.time()
print(oduzimanje(5, 2))
print(oduzimanje(5, 2))
print(oduzimanje(3, 1))
print(oduzimanje(5, 2))
print(oduzimanje(3, 1))
print(oduzimanje(5, 2))
# print(f"Vreme izvrsenja: {time.time() - start_time}")
if __name__ == "__main__":
main()