parent
6e72f80aa6
commit
910249657a
@ -0,0 +1,21 @@ |
|||||||
|
### Задаание 1 |
||||||
|
|
||||||
|
Используя библиотеку `time`, написать декоратор `@bench(n)`, |
||||||
|
который меняет функцию так, чтобы при каждом её вызове она |
||||||
|
вычислялась не один раз, а `n` раз, при этом необходимо выводить: |
||||||
|
|
||||||
|
- имя функции; |
||||||
|
- аргументы; |
||||||
|
- средняя время работы за `n` запусков; |
||||||
|
|
||||||
|
```python |
||||||
|
|
||||||
|
@bench(50) |
||||||
|
def foo(a: int, b: int): |
||||||
|
... |
||||||
|
|
||||||
|
|
||||||
|
>>> foo(5, 5) |
||||||
|
<... foo> (5, 5) {} |
||||||
|
Mean execution time on <N> calls: ???ns |
||||||
|
``` |
@ -0,0 +1,17 @@ |
|||||||
|
def deco(f): |
||||||
|
def inner(*args, **kwargs): |
||||||
|
print(f) |
||||||
|
return f(*args, **kwargs) |
||||||
|
|
||||||
|
return inner |
||||||
|
|
||||||
|
|
||||||
|
# @deco |
||||||
|
def foo(): |
||||||
|
""" |
||||||
|
Foo is just a function. |
||||||
|
""" |
||||||
|
return None |
||||||
|
|
||||||
|
|
||||||
|
foo = deco(foo) |
@ -0,0 +1,8 @@ |
|||||||
|
def deco_ch(f): |
||||||
|
f.jjjjj = 10 |
||||||
|
return f |
||||||
|
|
||||||
|
|
||||||
|
@deco_ch |
||||||
|
def foo(): |
||||||
|
print(foo.jjjjj) |
Loading…
Reference in new issue