我是一位瞭解Python的偶然玩家和愛好者程序員。我試圖製作一個簡單的文本冒險遊戲引擎,所以我需要從玩家那裏獲得原始輸入。Python - 將外部變量設置爲用戶輸入的副作用
這是Python的3.2.2,所以我行是這樣的:
var = input("What do you want to do? ").lower()
這行工作,但不是通過打字的是整條生產線,我想將它做成一個函數(像「 getinput()「)。從我讀到的有關input()和函數的內容中,我正在尋找一種不會返回任何內容的函數,但會將另一個變量的狀態(此處爲「var」)更改爲「副作用」。
我有一個工作功能「停止()」,它沒有參數:
def halt():
input("(Press Enter to continue...) ")
print("")
調用「停止()」給出了提示,等待輸入,然後打印一個空行,並繼續前進,我打算這麼做。
我試圖去工作的功能如下:
def getinput(x):
x = input("What do you want to do? ").lower()
print("")
定義getinput後(X):
var = ""
getinput(var)
print(var)
片斷代碼不打印用戶的輸入,和我對於爲什麼感到困惑。我需要做什麼才能以預期的方式完成這項工作?
是我試圖做的不可能與一個函數,或者只是有一些我不知道範圍?我應該在codereview?
我不明白爲什麼你想使你的'getinput()'函數不返回任何東西。如果您的函數返回輸入,您的代碼將更容易理解,因爲您將*用* Python而不是*用*來工作。 – 2012-04-13 02:10:00
這已經解決了很多次,一見http://stackoverflow.com/questions/986006/python-how-do-i-pass-a-variable-by-reference – 2012-04-13 02:32:40
如果你想從一個函數獲取信息,然後返回信息。這就是返回值的目的。 – 2012-04-13 04:13:13