Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2022, 17:20   #1
Am1Sun
Новичок
Джуниор
 
Регистрация: 30.05.2022
Сообщений: 1
Сообщение Как возвращать формирование ссылки только из тех аргументов которые были переданы

Как возвращать формирование ссылки только из тех аргументов которые были переданы
Есть много модулей и функций в которые ты передаешь параметры, и тебе возвращает какой либо ответ, например json.dump(str,file,indent), это просто пример
Параметр indent не обязательный, его можно как передать так и нет, как сделать при написании своей функции чтобы параметр не был использован если например равен None.
Пример на фото
Можете показать, как сделать если в функцию не передаешь никаких параметров выводится документация, если вводишь например 1 аргумент ссылка формируется только из него, а если вводишь все аргументы не обязательно 2, ссылка формируется из всех аргументов.
UPD: Проще говоря формировать ссылку только из аргументов которые были переданы, если не передано аргументов вывести документацию
Иначе выводить документацию
Изображения
Тип файла: png Screenshot_14.png (20.5 Кб, 12 просмотров)
Am1Sun вне форума Ответить с цитированием
Старый 30.05.2022, 20:36   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

А если посмотреть в сторону словаря?
Код:
def f(**d):
    docum = 'Doc for function'
    if not d:                    # Пустой словарь
        return docum, 1
    if 'x' in d:
        return d['x']
    elif 'y' in d:
        return d['y']
    else:
        return docum      # В словаре нет тестируемого ключа

d1 = {'x':1, 'y':2}
d2 = {}
d3 = {'x':1}
d4 = {'y':2}
d5 = {'c':1, 'b':2}
print(f(**d1))
print(f(**d2))
print(f(**d3))
print(f(**d4))
print(f(**d5))
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 30.05.2022, 22:42   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Если можно обойтись только неименованными аргументами, то, например:
Код:
def f(*args):
    if args:
        return "https://" + "".join(args)
    else:
        return "Doc for function"

print(f())
print(f('1'))
print(f('1', '2'))
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему удаляются только те чётные элементы которые я добавил, а не все которые есть в бинарном дереве? kitkat1000 Общие вопросы C/C++ 1 29.10.2020 17:52
Узнать количество аргументов, которые были переданы в функцию Krasiosoft Общие вопросы C/C++ 40 14.08.2015 02:19
Как настроить вордпресс 3.5,1, что бы ссылки были вида.. MILLIONERR WordPress и другие CMS 0 29.10.2013 16:45
как прервать выполнение всех функций которые были запущены setTimeout Arassir JavaScript, Ajax 1 20.10.2011 16:20
как работать с компанентами, которые были созданы программно? morgonXak Компоненты Delphi 6 20.12.2010 18:38