2014-03-30 72 views
0

我正在一個項目上工作,但我需要在函數之間傳遞變量,我不知道如何。我根本不擅長python。我剛剛開始像一個月前那樣學習它。無論如何,我只想知道在函數之間傳遞變量的最簡單方法。傳遞變量簡化

我可以這樣做嗎?

def a(): 
    variable1 = 0 
    answer = raw_input() 
    if answer == "a": 
     print "Correct" 
     b() 

def b(): 
    #Variable1 should now be here also right? 
    a() 
+0

如果你想做更多的python,可以使用「namespace」上的一些指針:http://bytebaker.com/2008/07/30/python-namespaces/ https://docs.python.org/3/tutorial/classes的.html#中的python-範圍和名稱空間 – fredtantini

回答

2

添加參數你的函數b。

def b(argument1): 
    print 'This is function b(), argument1=', argument1 

def a(): 
    # call func b, passing it 42 as an argument 
    b(42) 

在Python中,你可以使用全局變量,但這不是做事的推薦方式。通常應避免全局變量。

def b() 
    print 'This is function b(), globalVar1=', globalVar1 

def a() 
    global globalVar1 

    globalVar1 = 88 

    b() 
1

傳遞函數之間的變量的最簡單的方法是定義必要的功能以接受的參數。 Check out functions -part in the official tutorial

在你的情況下,你想通過variable1b。定義b這樣:

def b(var): 
    print var 
    # Whatever else you want to do.. 

def a(): 
    variable1 = 0 
    answer = raw_input() 
    if answer == "a": 
     print "Correct" 
     b(variable1) 

您的原始代碼不起作用,因爲內部函數的變量是局部的那些功能。使用函數參數是做你想做的正確方法。