2016-12-12 2 views
-1

Мой код выглядит следующим образом ...Как вызвать переменную, которая была определена в предыдущей функции?

def addition(a, b): 
    c = a + b 
    return c 

И я тогда хочу, чтобы иметь возможность использовать C позже в программе в качестве переменной. Например ...

d = c * 3 

Однако я получаю NameError, что «C» не определен ... Но я вернулся с, так почему я не могу использовать его в дальнейшем в коде ?! Так запутался. Благодаря!

(Это, очевидно, более простая версия того, что я хочу сделать, но я думал, что буду держать ее простой, чтобы я мог понять основы того, почему я не могу вызвать эту переменную вне моей функции, даже если я возвращаю переменную. Спасибо)

+0

как вы называете 'добавление' функцией? – Chr

+2

Вам нужно присвоить возвращаемое значение функции новой переменной 'c', например. 'c = дополнение (a, b)'. – AKS

ответ

1

Вы возвращали значение из c, но не всех переменных, т.е. имени c существует только в пределах его реализованные.

Итак, если вы хотите использовать возвращаемое значение , вы должны переписать его на новое имя. Вы можете сделать это, повторно назначив его c, но это может быть любое имя, которое вы хотели.

def addition(a, b): 
    c = a + b 
    return c 

new_var = addition(1,2) #new_var gets the value 3 
c = addition(2,3) #c gets the value 5 

Взгляните на этом хорошем объяснении о переменных и областях (link)

1

Вы обычно определяете функцию использования позже в своем коде. Для этого случая, использовать другую глобальную переменную c:

def addition(a, b): 
    c = a + b 
    return c 

c = addition(1, 2) 
d = c * 3 # d == 9 

Функции позволяют это использование повторяющегося кода или процедуры различия, так что вы можете позже написать в коде

m = addition(4, 5) 

и он будет хранить требуемый результат функциональности в m.

1

Если вы хотите определить c в функции и использовать его позже, вы можете использовать глобальные переменные.

c = 0 

def addition(a, b): 
global c 
c = a + b 
return c 

Это не считается хорошим для использования в глобальном масштабе. Вы также можете вызвать функцию в присваивании переменной.

d = addition(a, b) * 3 

Для этого вам нужно поставить реальные цифры на месте a и b. Я рекомендую вам использовать второй вариант.

 Смежные вопросы

  • Нет связанных вопросов^_^