Кратко
Секция статьи "Кратко"Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def
.
def add(x, y): return x + y
def add(x, y): return x + y
Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.
add(1, 10)# 11add('abc', 'def')# 'abcdef'
add(1, 10) # 11 add('abc', 'def') # 'abcdef'
Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!):
def newfunc(n): def myfunc(x): return x + n return myfuncnew = newfunc(100) # new - это функцияnew(200)# 300
def newfunc(n): def myfunc(x): return x + n return myfunc new = newfunc(100) # new - это функция new(200) # 300
Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None:
def func(): passprint(func())# None
def func(): pass print(func()) # None
Аргументы функции
Секция статьи "Аргументы функции"Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.
def func(a, b, c=2): # c - необязательный аргумент return a + b + cfunc(1, 2) # a = 1, b = 2, c = 2 (по умолчанию)# 5func(1, 2, 3) # a = 1, b = 2, c = 3# 6func(a=1, b=3) # a = 1, b = 3, c = 2# 6func(a=3, c=6) # a = 3, c = 6, b не определенTraceback (most recent call last): File "", line 1, in func(a=3, c=6)TypeError: func() takes at least 2 arguments (2 given)
def func(a, b, c=2): # c - необязательный аргумент return a + b + c func(1, 2) # a = 1, b = 2, c = 2 (по умолчанию) # 5 func(1, 2, 3) # a = 1, b = 2, c = 3 # 6 func(a=1, b=3) # a = 1, b = 3, c = 2 # 6 func(a=3, c=6) # a = 3, c = 6, b не определен Traceback (most recent call last): File "", line 1, in func(a=3, c=6) TypeError: func() takes at least 2 arguments (2 given)