2011-06-14 41 views
0

請給我一個Python函數的問題並返回。使用函數在GUI中移動對象

from graphics import* 
win = GraphWin('Me',640,160) 


mylist=[] 
def move_ob(ob): 

    ob.move(4,0) 
    return ob 

def circle(): 
    for x in range (10,200,10): 
     for y in range (10,200,10): 
      c =Circle (Point(x,y),5) 
      c.draw(win) 
      mylist.append(c) 


def main(): 
    circle() 
    win.getMouse() 
    move_ob(mylist) 

    win.getMouse() 
    win.close() 

main() 

我曾經我這樣做,使我這個錯誤

ob.move(4,0) 
AttributeError: 'list' object has no attribute 'move' 

PS:該庫是從書約翰Zelle,學習蟒蛇基礎..

我要讓那些圓圈我做...

+1

請爲下次選擇一個更好的標題:標題中沒有必要包含「Python」(或其他),因爲您已經標記了標題。另外,請不要在標題中加上「幫助」或類似內容,因爲我們都假設你需要其他幫助,因爲其他人不會發布問題;)所有開玩笑的人,這種做法都被社區所詬病,並且相信與否它會吸引更少的人來解決你的問題。如果你想編輯這個標題,這將是很好的,但如果沒有。下次,謝謝! – Trufa 2011-06-14 15:00:26

+0

thnx,併爲標題感到抱歉,我現在肯定會修復它... thnx again .. ..雖然我仍然有問題! :)! – 0bserver07 2011-06-14 15:05:55

+0

看看答案中的評論我認爲現在應該修復。感謝您修復標題並歡迎來到StackOveflow!只要你可以請花一分鐘時間來回顧[常見問題]好的,這是一個簡短的閱讀,並將幫助你獲得質量問題的答案! – Trufa 2011-06-14 15:18:53

回答

4

您正在通過mylist,這是一個list。列表不知道move是什麼。

我假設你想要移動列表中的所有圓圈。因此,您可能需要:

for circleObject in mylist: 
    move_ob(circle) 

而不是move_ob(mylist)

+0

這會工作(只是試了一下),但我會避免重新綁定圈。 – DSM 2011-06-14 14:44:23

+0

感謝您的回覆!... :(現在它說 圈() UnboundLocalError:在分配之前引用的局部變量'circle' – 0bserver07 2011-06-14 14:52:45

+0

@ user539075哎呀,這可能是由我重複使用的圓圈造成的(沒有實現函數被稱爲圓圈),你可能想爲mylist或其他名字做'circleObject' – 2011-06-14 15:12:57