Хелпикс

Главная

Контакты

Случайная статья





Аргументы по умолчанию. Значения по умолчанию



Аргументы по умолчанию

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

Значения по умолчанию

В Python функции могут иметь параметры со значениями по умолчанию. Параметры по умолчанию прописываются при определении функции и содержат значения по умолчанию для аргументов в случае если они не были переданы при вызове функции. Посмотрите на этот код:

def locate(place, planet="Earth"):
print(place, "on", planet)


locate("Berlin") # Berlin on Earth
locate("Breakfast", planet="Pluto") # Breakfast on Pluto
locate("Craters", "Mercury") # Craters on Mercury

Здесь мы имеет два параметра: place и planet. Первый не имеет значения по умолчанию, значит мы должны всегда определять его при вызове функции. Второй, напротив, может быть опущен, и в этом случае функция просто возьмет значение по умолчанию.

Параметры со значениями по умолчанию, такие как planet, в некотором смысле опциональны. Вы можете смело вызывать функцию без них и опереться на установленное заранее значение. Как показано в примере выше, все места, которые мы захотим найти наиболее вероятно находятся на Земле. А новое значение планете может быть присвоено как по имени, так и по позиции параметра.

Когда вы хотите определить такую функцию, ставьте обычные параметры перед параметрами со значениями по умолчанию. Если вы попробуете сделать наоборот, вылезет SyntaxError:

def greet(greeting="Hello,", name):
print(greeting, name)

# SyntaxError: non-default argument follows default argument

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



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.