-2
我試圖建立一個Python列表中的命令列表[]
,它被傳遞給另一個python對象。沒有崩潰,但收件人傳遞了一個空參數。在Python中通過引用傳遞:傳遞列表並添加字符?
該對象是由panel,slot_handler和slot組成的python腳本menu.py的一部分。他們一起在pygame中創建了一個滾動面板對象:面板是頂級的。面板有一個實例slot_handler,其中包含鏈接列表中的插槽。
我從來沒有在python中試過這個。我想知道這是否可能。如果這不可行,我願意接受。
class slot(object):
def getcommands(self,mylist):
if(self.has_phrase):
if(self.phrase=="Move Up"):
mylist.append('u')
elif(self.phrase=="Move Down"):
mylist.append('d')
elif(self.phrase=="Move Left"):
mylist.append('l')
elif(self.phrase=="Move Right"):
mylist.append('r')
elif(self.phrase=="Open"):
mylist.append('o')
elif(self.phrase=="Close"):
mylist.append('c')
elif(self.phrase=="Rotate"):
mylist.append('s')
if(self.has_next):
self.next.getcommands(mylist)
...
class slot_handler(object):
def getcommands(self):
commands = []
self.top_slot.getcommands(commands)
...
class panel(object):
def getcommands(self):
return self.slots.getcommands()
「我想知道這是可能的」。你試過了嗎?它失敗了嗎? – hivert
附註:您的if-elif樹太可怕了。只用一個字典... – Hyperboreus
我解決了這個問題,通過傳入一個列表變量到panel.getcommands(),我猜python函數不能返回一個列表而不會超出範圍? –