Например:
>1 | def bigger(a,b):
>2 | if a > b:
>3 | print a
>4 | else:
>5 | print b
>6 | # В описании функции указано, что она принимает 2 аргумента
>7 | # Корректное использование функции
>8 | bigger(5, 6)
>9 | # Некорректное использование функции
>0 | bigger()
>1 | bigger(3)
>2 | bigger(12, 7, 3)
Аргументы - ключевые слова
Аргументы - ключевые слова используются при вызове функции. Благодаря ключевым аргументам, вы можете задавать произвольный (то есть не такой каким он описан, при создании функции) порядок аргументов.
Например:
>| def person(name, age):
>| print name, "is", age, "years old"
>|
>| # Хотя в описании функции первым аргументом идет имя, мы можем вызвать функцию вот так
>|
>| person(age = 23, name = "John")
Аргументы, заданные по-умолчанию
Аргумент по умолчанию, это аргумент, значение для которого задано изначально, при создании функции.
Например:
>| def space(planet_name, center = "Star"):
>| print planet_name, "is orbiting a", center
>| # Можно вызвать функцию space так:
>| space("Mars")
>| # В результате получим: Mars is orbiting a Star
>|
>| # Можно вызвать функцию space иначе:
>| space("Mars", "Black Hole")
>| # В результате получим: Mars is orbiting a Black Hole
Аргументы произвольной длины
Иногда возникает ситуация, когда вы заранее не знаете, какое количество аргументов будет необходимо принять функции. В этом случае следует использовать аргументы произвольной длины. Они задаются произвольным именем переменной, перед которой ставится звездочка (*).
Например:
>| def unknown( * args):
>| for argument in args:
>| print argument
>|
>| unknown("hello", "world") # напечатает оба слова, каждое с новой строки
>| unknown(1, 2, 3, 4, 5) # напечатает все числа, каждое с новой строки
>| unknown() # ничего не выведет
Ключевое слово return
Выражение return прекращает выполнение функции и возвращает указанное после выражения значение. Выражение return без аргументов это то же самое, что и выражение return None. Соответственно, теперь становится возможным, например, присваивать результат выполнения функции какой либо переменной.
Например:
>| def bigger(a,b):
>| if a > b:
>| return a # Если a больше чем b, то возвращаем b и прекращаем выполнение функции
>| return b # Незачем использовать else. Если мы дошли до этой строки, то b, точно не меньше чем a
>|
>| # присваиваем результат функции bigger переменной num
>| num = bigger(23, 42)
Область видимости
Некоторые переменные скрипта могут быть недоступны некоторым областям программы. Все зависит от того, где вы объявили эти переменные.