0

Python バージョン: 2.7.5 では、Zelle の Graphics がインストールされていますが、関数内の非グローバル名を別の関数で編集しようとしているため、どうすればよいかわかりません。これが私のコードの例です。

from graphics import *
import time
keyPad=GraphWin("Key Pad",300,400)
def Game():
    Buttons()
    testFor_keyPad_press()
def Buttons():
    button1=Rectangle(Point(1,1),Point(100,100))
    button1.setFill('gold')
    button.draw(keyPad)
def testFor_keyPad_press():
    userInput=keyPad.getMouse()
    userInputX=str(userInput.getX())
    userInputY=str(userInput.getY())
    if(userInputX<101 and userInputY<100):
        button1.setFill('grey')
        keyPad.update()
        time.sleep(0.5)
        button1.setFill('gold')
        keyPad.update()
Game()

私はそれがうまくいくはずだと思っていましたが、グローバル名 'button1' が定義されていないというエラーが表示されます... ユーザー定義関数 "Buttons()" 内で button1 を編集する方法はありますか? それともそれは不可能ですか?これを行う方法があるかどうか教えてください...すべての助けは

4

1 に答える 1

0
def Buttons():
    global button1
    button1=Rectangle(Point(1,1),Point(100,100))
    button1.setFill('gold')
    button.draw(keyPad)

関数の外部からアクセスできるようにします...しかし、実際にはロジックをクラスにカプセル化する必要があります

于 2013-11-03T04:36:55.113 に答える