14 Определение и вызов простых функций

Использование def утверждения является наиболее распространенным способом определить функцию в Python. Это утверждение так называемое соединение заявление одного пункта со следующим синтаксисом:

 def function_name(parameters):
    statement(s)

 

function_name известна как идентификатор функции. Так как определение функции является исполняемым утверждение его исполнение связывает имя функции к функции объекта , который может быть назван позже с использованием идентификатора.

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

statement(s) - также известное как тело функции - это непустое последовательность операторов , выполняемых при каждом вызове функции. Это означает , что тело функции не может быть пустым, так же как и любой отступом блок .

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

 def greet():
    print("Hello")

 

Теперь давайте называть определенные greet() функции:

 greet()
# Out: Hello

 

Это еще один пример определения функции, которая принимает один единственный аргумент и отображает переданное значение каждый раз, когда вызывается функция:

 def greet_two(greeting):
    print(greeting)

 

После того, что greet_two() функция должна быть вызвана с аргументом:

 greet_two("Howdy")
# Out: Howdy

 

Также вы можете задать значение по умолчанию для этого аргумента функции:

 def greet_two(greeting="Howdy"):
    print(greeting)
 

Теперь вы можете вызывать функцию без указания значения:

 greet_two()
# Out: Howdy 

 

Вы заметите, что в отличие от многих других языков, вам не нужно явно объявлять тип возвращаемого значения функции. Функции Python могут возвращать значения любого типа с помощью return ключевого слова. Одна функция может возвращать любое количество разных типов!

 def many_types(x):
    if x < 0:
        return "Hello!"
    else:
        return 0

print(many_types(1))
print(many_types(-1))

# Output:
0
Hello!

 

Пока это правильно обрабатывается вызывающей стороной, это совершенно правильный код Python.

Функция , которая достигает конца исполнения без оператора возврата всегда будет возвращать None :

 def do_nothing():
    pass

print(do_nothing())
# Out: None

 

Как упоминалось ранее, определение функции должно иметь тело функции, непустую последовательность операторов. Поэтому pass используется оператор в теле функции, которая является нулевой операции - когда он выполняется, ничего не происходит. Он делает то, что значит, он пропускает. Это полезно в качестве заполнителя, когда синтаксически требуется оператор, но не нужно выполнять код.