2011-07-13 29 views
1

我能設定的功能範圍內的變量,知道我發送這個變量等的參數..如何在函數範圍內設置變量?

參見例如:

def test(param): 
    param = 3 

var = 5 
test(var) 

print var 

我想打印的值是3,但它不」不會發生。 我該怎麼做?

謝謝..

+0

你會發現幾個選項[這裏](http://docs.python.org/faq/programming.html#how-do-i-write- a-function-with-output-parameters-call-by-reference) – Howard

回答

0

全球語句可以分配給函數的範圍之內聲明的變量。

var = 5 
def test(): 
    global var 
    var = 3 

test() 
print var 

但是,我發現我很少需要使用這種技術。函數式編程模型使得這一點不那麼重要。

+0

即使在簡單明瞭的過程編程中,這樣的事情也是不鼓勵和不必要的。 – delnan

+1

當然。 Jonatas問如何去做,而不是他是否應該這樣做。對於我們所知道的,他正在試圖贏得一筆賭注,或者爲了好玩而刻意編寫混淆Python。 – wberry

2

可以返回的param值是這樣的:

def test(param) 
    param = 3 
    return param 

var = 5 
var = test(var) 

或者您也可以使用全局變量。

2

最好使用returnglobal

def test(param): 
    param = 3 
    return param 

var = 5 
var = test(var) 

print var