Найти - Пользователи
Полная версия: Параметры функции
Начало » Python для новичков » Параметры функции
1
titov_
Есть пример из уроков - https://www.youtube.com/watch?v=B1kQH8CDpXU

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import math
def sqeq( a, b, c ) :
    D = b*b - 4*a*c
    if D < 0 :
        return [ ]
    else :
        x1 = ( -b + math.sqrt( D ) ) / ( 2 * a )
        x2 = ( -b - math.sqrt( D ) ) / ( 2 * a )
        return [ x1, x2 ]
    
a2 = input( u"a: " )
a1 = input( u"b: " )
a0 = input( u"c: " )    
X = sqeq( a2, a1, a0 )
print X

Из урока непонятно, зачем назначаются дополнительные переменные a2, a1, a0? Как в функции происходит замена имён параметров?
neri
a, b и c - указывают что в функцию должны быть переданы три переменные и что с ними надо сделать в теле функции.
а2, а1, а0 - конкретные значения переданные в функцию для вычисления.
FishHook
titov_
Из урока непонятно, зачем назначаются дополнительные переменные a2, a1, a0?
Они не дополнительные, они как раз основные. Переменные-аргументы функции живут только в области видимости функции. Как раз они временные.
py.user.next
titov_
Есть пример из уроков
Учись у тех, кто знает. Там просто хрень двухчасовая.

titov_
Как в функции происходит замена имён параметров?
Вообще, есть формальные аргументы функции и фактические аргументы функции. Есть определение функции и есть вызов функции.

Пример:
def f(x):
    return x * 2
 
f(3)
Здесь первые две строки - это определение функции. То есть функция создаётся и становится видна в программе, но не работает.
Последняя строка - это вызов функции. То есть ищется функция среди видимых и её тело запускается на выполнение.

В первой строке x - это формальный аргумент функции. Почему формальный, потому что он присутствует лишь для доступа к значению, передаваемому извне.
В последней строке 3 - это фактический аргумент. Почему фактический, потому что именно с этим значением будет работать функция, получая к нему доступ через формальный аргумент.

Вызов функции ставит в соответствие формальные аргументы фактическим. В данном случае вызов функции f ставит в соответствие фактический аргумент 3 формальному аргументу x.

То есть функция f может пролазить во внешний по отношению к ней мир через это окно под названием x и видеть там тройку, потому что x и тройка сцеплены вызовом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB