2015-04-29 152 views
-1

我正在製作一個基於文本的小遊戲,並且我想要一個函數,它將創建一個帶有座標的變量,稍後我可以調用它來繪製圖形。這是我有:基於另一個變量的基於變量的Python參考

def addObject(name, x, y): 
    global name = [x,y] 
addObject(Home, 3,3) 
print(Home) 

我想稍後繪製它。這是我遇到的麻煩,但。

+0

從函數的定義看來它在某處添加了一個對象,但函數引用了一個'global',然後賦值給它(語法錯誤)。什麼是你送的'家'?它沒有在任何地方定義。我不知道你實際上想要完成什麼。 – TigerhawkT3

+0

@ TigerhawkT3我認爲他有一個縮進問題。看看馬林的答案。 –

+0

公平地說,縮進問題實際上是由編輯添加的。 – Marein

回答

1

這是看起來做你想做的事情。

def addObject(name, x, y): 
    globals()[name] = [x,y] 

addObject('Home', 3,3) 
print(Home) 

注意:它需要調用addObject並將其名稱作爲字符串。

+0

哦,謝謝你,這是我想要的!抱歉,我是新的原始解釋。 – user3666755

+0

沒問題。就像我在評論中所說的那樣,在任何使用任何編程語言的非平凡程序中,全局變量都被認爲是一個壞主意。 python中的全局變量啓動較慢見[this](https://wiki.python.org/moin/PythonSpeed/PerformanceTips)。 –

+0

@ user3666755 - 如果這是您正在尋找的答案,請點擊勾號以「接受」它。這不是必需的,但這樣,下一個具有相同問題的人就會知道這個解決方案正是你正在尋找的。它也爲你和發佈答案的人提供了一些聲譽。 –