2015-09-27 92 views
0

這是python中的小型加入程序,但是我想用函數函數中的變量(num1,num2)函數來解決這個問題。如何在其他函數中使用一個函數中的變量

def insert(): 
    num1 = 2 
    num2 = 4 
def sum(): 
    add = num1 + num2 
    print(add) 
def main(): 
    sum() 
main() 
+0

請首先更正您的縮進。並解釋你的代碼有什麼問題? – Kasramvd

+0

我無法調用num1和num2進sum()和當我運行這個錯誤消息num1沒有定義 –

回答

0

變量num1num2已被定義爲insert()函數內部的局部變量,所以你不能使用它們,其使用它自己的命名空間中的另一個函數內。

爲了解決此問題,您可以返回insert中的變量,然後將返回的變量作爲參數傳遞給sum函數。

def insert(): 
    num1 = 2 
    num2 = 4 
    return num1,num2 
a,b=insert() 
def sum(num1,num2): 
    add = num1 + num2 
    print(add) 
def main(): 
    a,b=insert() 
    sum(a,b) 
main() 

請注意,這是一個示例,如果您只想創建一些變量,您可以在模塊的頂層創建它們。

此外,您可以使用global表達式來定義一個變量作爲函數內的全局變量,但這不是一種安全和pythonic作爲返回值並將它們作爲參數傳遞。

def insert(): 
    global num1 
    global num2 
    num1 = 2 
    num2 = 4 

def sum(): 
    add = num1 + num2 
    print(add) 
def main(): 
    sum() 
main() 
+0

謝謝你的回覆,知道如何使用變量sum()是否有任何方法,請解釋通過使用我的場景。 –

相關問題