Pogremix
@Pogremix
Прогресс в движении

В чем ошибка (почему на выходе из функции 5, а не 7)?

f71412ff417746a

x=5
def funA(x,y):
x=7
return x
funA(x,4)
print x
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
abs0lut
@abs0lut
Почитайте про ссылки, объекты, область видимости переменных и способы передачи параметров в функцию.

Что видим в коде:
x=5
создали объект со значением "5" и присвоили ссылку на него переменной "х"
def funA(x,y):
        x=7
        return x

создали функцию с двумя параметрами
в теле функции завели локальную переменную "х"
в качестве результата возвратили локальную переменную

funA(x,4)
вызвали функцию с параметрами 5 и 4
print x
напечатали не локальную переменную "х"

А теперь ответ на Ваш вопрос:
В чем ошибка (почему на выходе из функции 5, а не 7)?

На выходе из функции как раз 7
>>> x=5

>>> def funA(x,y):
	    x = 7
	    return x

>>> funA(x,4)
7

А то, что Вы приняли за "выход" функции есть просто переменная "х", которая понятия не имеет о Вашей функции, что внутри нее творится и что возвращется
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
или
x = funA(x,4)
или
def funA(y):
    global x
    x = 7
    return y
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы