2013-11-03 2 views
0

В Python Версия: 2.7.5, У меня установлена ​​Графика Zelle, и я понятия не имею, что делать, потому что я пытаюсь редактировать не глобальное имя в функции с другой функцией. Вот пример моего кода.В Python edit Не глобальные имена

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» не определен ... так есть способ, которым я могу редактировать button1 внутри пользовательской функции «Кнопки () "? Или это невозможно? Пожалуйста, дайте мне знать, если есть способ сделать это или нет ... все помощь

ответ

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

бы сделать его доступным за пределами функции ... но на самом деле вы, вероятно, следует инкапсулировать логику в классах

+0

Спасибо, но я не понимаю, что вы подразумеваете под «инкапсулированием моей логики», – NinjaKingRo

Смежные вопросы