+ 3

Может ли быть функция подфункцией другой функции?

Пример: def num() x = float(input('Enter first number: ')) y = float(input('Enter second number: ')) def add() num() print(x+y) У меня лично выдает ошибку, поэтому если это и возможно, то прошу написать как именно. За ранее спасибо!

7th Aug 2016, 3:47 PM
Nickolaz
Nickolaz - avatar
2 ответов
+ 5
У Вас x и y определяются только внутри функции num и никуда не передаются. Потому и ошибка – name 'x' not defined. Ну да, функции бывают встроенными, но и в этом случае определённые в них переменные нигде, кроме как в самой функции, не доступны. Попробуйте или вызывать add в num, передавая x и y как параметры, или возвращать (return) x и y и объявлять их в add так: def num(): x=.... y=.... return x, y def add(): x, y = num() print(x+y)
7th Aug 2016, 4:16 PM
aruluth
aruluth - avatar
+ 2
В Python есть понятие - область видимости. Функция это наименьшая часть области видимости в вашей программе. Функция ниже ничего не знает о переменной х из функции выше - разные области видимости.
27th Aug 2016, 9:19 AM
Viktor Sypko
Viktor Sypko - avatar