2016-12-12 67 views
-1

我的代碼如下...如何調用前一個函數中定義的變量?

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

然後,我希望能夠在以後的程序上使用C作爲變量。例如...

d = c * 3 

不過,我得到的是「C」沒有定義NameError ......但我已經回到C,那麼爲什麼我不能在後面的代碼上使用它?如此迷茫。謝謝! (這顯然是我想做的更簡單的版本,但我認爲我會保持簡單,這樣我就能理解爲什麼我不能在我的函數外調用此變量的基礎知識,即使我正在返回變量。謝謝)

+0

你如何調用'addition'函數? – 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 

對於這一點,你需要把實數在ab的地方。我建議你使用第二個選項。

相關問題