12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- from functools import wraps
- def upper(func):
- @wraps(func)
- def inner(*args, **kwargs):
- """
- Внутренняя функция декоратора
- """
- return func(*args, **kwargs).upper()
- return inner
- @upper
- def concatenate(*args):
- """
- Возвращает конкатенацию переданных строк
- """
- return ', '.join(args)
- def limit_qyery(func):
- call_counter = 0
- @wraps(func)
- def inner(*args, **kwargs):
- nonlocal call_counter
- call_counter += 1
- if call_counter == 4:
- print("Лимит вызовов закончен, все 3 попытки израсходованы")
- return
- return func(*args, **kwargs)
- return inner
- @limit_qyery
- def add(a: int, b: int):
- return a + b
- def main():
- # print(concatenate.__name__)
- # print(concatenate.__doc__.strip())
-
- print(add(4, 5))
- print(add(5, 8))
- print(add(9, 43))
- print(add(10, 33))
- print(add.__name__)
- if __name__ == "__main__":
- main()
|