Инструкции

Справочный раздел

В этом разделе Вы найдетё инструкции, справочники, и всевозможные хелпы по использованию программного обеспечения.

Разделы инструкций

В сети

Пользователей: 181
Из них просматривают:
Аналоги: 37. Видео: 1. Галерея: 3. Даташиты: 36. Инструкции: 76. Магазин: 1. Новости: 6. Остальное: 1. Программы: 1. Производители: 1. Расчёты: 1. Теги: 2. Форум: 15.
Участников: 2
Гостей: 179

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

4.7.3. Именованные аргументы

Функция может быть вызвана с использованием именованных аргументов (keyword arguments) в виде 'keyword = value'. Например, функция ask_ok() (раздел 4.7.1) может быть вызвана следующими способами:

 

ask_ok('Вы действительно хотите выйти?')
ask_ok(retries = 2, prompt = 'Перезаписать файл?')
ask_ok('Продолжим?', complaint = 'А теперь тоже самое, только по-русски!')
ask_ok('Удалить все файлы из корневого раздела?', 100, 'А может всё-таки удалить?')

 

Однако следующие вызовы ошибочны:

 

# Отсутствует обязательный аргумент
ask_ok()
# Неименованный аргумент следует за именованным
ask_ok(prompt = 'Перезаписать файл?', 2)
# Два значения для одного аргумента
ask_ok('Продолжим?', prompt = 'Да/Нет')
# Неизвестное имя аргумента
ask_ok(actor = 'Никулин')

 

В общем, в списке аргументов именованные аргументы должны следовать после позиционных. Не имеет значение, имеет неименованный аргумент значение по умолчанию или нет. Никакой аргумент не может быть передан более одного раза:

 

>>> def function(a):
...    pass
...
>>> function(0, a=0)
...
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    function(0, a=0)
TypeError: function() got multiple values for keyword argument 'a'

 

Если в определении функции присутствует формальный параметр в виде **name, то его значением становится словарь, содержащий все именованные аргументы, чьи имена не соответствуют формальным параметрам. Такой способ можно комбинировать с формой *name, позволяющей получить кортеж (tuple), содержащий позиционные аргументы, не входящие в список формальных параметров. (Запись **name должна следовать после записи *name.) Например, определим функцию:

 

def example(formal, *arguments, **keywords):
    print "Количество пользователей:", formal
    print ’-’*40
    for arg in arguments: print arg
    print ’-’*40
    for kw in keywords.keys():
        print kw, ’:’, keywords[kw]

 

Ее можно вызвать следующим образом:

 

example(1000000,
’Это очень много’,
’Это действительно очень много’,
language = ’Python’,
author = ’Guido van Rossum’)

 

Вывод будет таким:

 

Количество пользователей: 1000000
----------------------------------------
Это очень много
Это действительно очень много
----------------------------------------
language: Python
author: Guido van Rossum

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Крупную деталь можно паять и обычным паяльником (25-40 Вт), если разогреть ее, например, на газовой плите.

Похожие инструкции