[英]How to call on a variable which has been defined in a previous function?
我的代碼如下...
def addition(a, b):
c = a + b
return c
而我則希望能夠在以后的程序用C作為變量。 例如...
d = c * 3
但是,我收到一個NameError,未定義“ C” ...但是我返回了c,所以為什么以后在代碼中不能使用它呢? 如此迷茫。 謝謝!
(這顯然是我想要做的一個簡單的版本,但是我想我會保持簡單,這樣我就可以理解即使返回變量也無法在函數外調用此變量的基本知識。)
您返回了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
看看這個關於變量和范圍的很好的解釋( 鏈接 )
通常,您定義一個函數以在以后的代碼中使用它。 在這種情況下,請使用另一個全局變量c
:
def addition(a, b):
c = a + b
return c
c = addition(1, 2)
d = c * 3 # d == 9
函數允許重復代碼或過程區分的這種用法,以便您以后可以在代碼中編寫
m = addition(4, 5)
並將所需的功能結果存儲到m
。
如果要在函數中定義c
並在以后使用,則可以使用全局變量。
c = 0
def addition(a, b):
global c
c = a + b
return c
但是,使用全局變量並不是很好。 您也可以在變量分配中調用該函數。
d = addition(a, b) * 3
為此,您需要將實數放在a
和b
。 我建議您使用第二個選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.