titov_
Есть пример из уроков
Учись у тех, кто знает. Там просто хрень двухчасовая.
titov_
Как в функции происходит замена имён параметров?
Вообще, есть формальные аргументы функции и фактические аргументы функции. Есть определение функции и есть вызов функции.
Пример:
def f(x):
return x * 2
f(3)
Здесь первые две строки - это определение функции. То есть функция создаётся и становится видна в программе, но не работает.
Последняя строка - это вызов функции. То есть ищется функция среди видимых и её тело запускается на выполнение.
В первой строке x - это формальный аргумент функции. Почему формальный, потому что он присутствует лишь для доступа к значению, передаваемому извне.
В последней строке 3 - это фактический аргумент. Почему фактический, потому что именно с этим значением будет работать функция, получая к нему доступ через формальный аргумент.
Вызов функции ставит в соответствие формальные аргументы фактическим. В данном случае вызов функции f ставит в соответствие фактический аргумент 3 формальному аргументу x.
То есть функция f может пролазить во внешний по отношению к ней мир через это окно под названием x и видеть там тройку, потому что x и тройка сцеплены вызовом.