def get_absolute_url(url, *args, **kwargs):
positional_args = list(args)
url += ‘/’ + ‘/’.join(str(arg) for arg in positional_args)
param = []
for key, value in kwargs.items():
param.append(f'{key}={value}’)
param_str = ‘&’.join(param)
if param_str:
url += ‘?’ + param_str
return url
print(get_absolute_url(‘www.yandex.ru’, ‘posts’, ‘news’, id=’24’, author=’admin’))
print(get_absolute_url(‘www.google.com’, ‘images’, id=’24’, category=’auto’, color=’red’, size=’small’))
как упростить код
python
def get_absolute_url(url, *args, **kwargs):
url += '/' + '/'.join(str(arg) for arg in args)
param_str = '&'.join(f"{key}={value}" for key, value in kwargs.items())
if param_str:
url += '?' + param_str
return url
print(get_absolute_url('www.yandex.ru', 'posts', 'news', id='24', author='admin'))
print(get_absolute_url('www.google.com', 'images', id='24', category='auto', color='red', size='small'))
Этот код более читабелен и компактен, так как использует генераторы списков для форматирования параметров `kwargs`, что упрощает логику и уменьшает количество строк кода.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет