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