2015-10-20 55 views
0

我對Python仍然很陌生,但似乎遇到了問題。當試圖調用另一個定義該變量的函數時,我得到一個未定義的錯誤。Python:嘗試調用某個函數時出現undefine變量錯誤?

def unpackCon(): 
    unpackConfirm = input("Unpack contents?[Y/N] ") 

def unpackConScript(): 
    if unpackConfirm == "y": 
     print ("Unpack confirmed.") 
    elif unpackConfirm == "n": 
     print ("Unpack unconfirmed.") 
    else: 
     print ("Value %s is not valid.") % (unpackConfirm) 
     unpackCon() 

unpackCon() 
unpackConScript() 

瞭解Python,它可能與縮進和排序有關。起初我相信這是因爲我沒有先定義函數就調用函數,但是我多次轉換了命令而沒有任何結果。

欣賞答案!

+1

你永遠在'unpackConScript()定義''unpackConfirm'我 – styvane

回答

1

unpackConfirmunpackCon()的內部定義,超出了其他功能的範圍。您需要返回變量才能訪問它。

嘗試:

def unpackCon(): 
    unpackConfirm = input("Unpack contents?[Y/N] ").lower() 
    return unpackConfirm 

def unpackConScript(): 
    unpackConfirm = unpackCon() 

    if unpackConfirm == "y": 
     print ("Unpack confirmed.") 
    elif unpackConfirm == "n": 
     print ("Unpack unconfirmed.") 
    else: 
     print ("Value %s is not valid.") % (unpackConfirm) 
     unpackCon() 

unpackConScript() 
+0

將如何得到這樣做呢?我知道在某些語言/案例中,您可以將變量標記爲全局。 – Kyodaniz

+0

我已經更新了我的答案來幫助你。編輯:我已經添加了'.lower()',這樣你就可以放心,你會得到'y'或'n',不必擔心大寫字母 – FlashDrive

+0

'unpackConfirm = input(「Unpack contents?[Y/N]「).lower()'更好 – styvane

相關問題