/
glukhov2008
/
Python
Обзор
Документация
Войти
/
glukhov2008
/
Python
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
print_deco.py
19 строк
690 B
Андрей Глухов
deco wrap realize new func print
12 апр 2024, 16:38
12 апр 2024, 16:38
9a8ae59
Код
Авторство
О чём код?
def upper_str(func): def wrapper(*args, **kwargs): upper_args = [str(i).upper() for i in args] upper_kwargs = dict([(k, v.upper()) for k,v in kwargs.items()]) func(*upper_args,**upper_kwargs) return wrapper old_print = print @upper_str def print(*args, **kwargs): caps = tuple(c.upper() if isinstance(c, str) else c for c in args) if len(kwargs) == 0: old_print(*caps) elif len(kwargs) == 1 and 'sep' in kwargs: old_print(*caps, sep=kwargs['sep']) elif len(kwargs) == 1 and 'end' in kwargs: old_print(*caps, end=kwargs['end']) else: old_print(*caps, sep=kwargs['sep'], end=kwargs['end'])