Основы Python 5 функции
Основы Python 5 функции
Функции
Пример:
def printMax(a, b): # Определение функции
if a > b:
print(a, 'максимально')
elif a == b:
print(a, 'равно', b)
else:
print(b, 'максимально')
– после того как функция определена, можно ее вызывать, передавая в скобках различные аргументы:
Переменные в функциях
– переменные, объявленные внутри определения функции являются локальными.
Область видимости всех переменных ограничена блоком, в котором они объявлены.
Пример:
x = 50
def func(x):
print('x равен', x) -> x равен 50
x = 2
print('Замена локального x на', x) -> Замена локального x на 2
func(x)
print('x по прежнему', x) -> x по прежнему 50
– при определении одной функции внутри другой для изменения переменной внешней функции из
внутренней используется зарезервированное слово nonlocal
Пример:
x = 50
def func_outer():
x = 2
print('x равно', x) -> x равно 2
def func_inner():
nonlocal x
x = 5
func_inner()
print('Локальное x сменилось на', x) -> Локальное x сменилось на 5
func_outer()
print('Глобальное x ', x) -> Глобальное x 50
Язык программирования Питон (Python) 4
Аргументы функции
Замечания. – значениями по умолчанию могут быть снабжены только параметры, находящиеся в конце
списка параметров;
– значения по умолчанию должны быть неизменяемыми (константы).
Пример:
def say(message, times = 1):
print(message * times)
Пример:
def func(a, b=5, c=10):
print('a равно', a, ', b равно', b, ', а c равно', c)
Пример:
def total(initial, *numbers, **keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
Строки документации
Строка документации для функции – cтрока в первой логической строке этой функции
– принято записывать в форме многострочной строки, где
- первая строка начинается с заглавной буквы и заканчивается точкой.
- вторая строка оставляется пустой,
- с третьей строки начинается подробное описание.
– доступ к строке документации функции можно получить с помощью атрибута этой функции __doc__.
– имена функций в Python являются переменными, содержащими адрес объекта типа функция,
поэтому этот адрес можно присвоить другой переменной и вызвать функцию под другим именем.
Пример:
def summa(x, y):
return x + y
f = summa
– поскольку имя функции – обычная переменная, мы можем передать имя функции в качестве
аргумента при вызове другой функции:
Пример:
def summa(x, y):
return x + y
Декораторы
Упрощённое декорирование
Пример:
def sq_it(func):
def new_func(*args, **kwargs):
result = func(*args, **kwargs)
return result * result
return new_func
@timer
@pause
def func(x, y):
return x + y
Пример:
# Вначале определим функцию edit_story():
def edit_story(words, func):
for word in words:
print(func(word))
# Создадим список
s = ['aaaaa', 'bbbbbb', 'cccccc']
edit_story(s, f)
Пример:
def my_range(first=0, last=10, step=1):
number = first
while number < last:
yield number
number += step
for i in ranger:
print(i) -> 1
1.25
1.5
1.75