2011-04-23 8 views
0

내가 코드를 가지고 :글로벌 질문 (파이썬)

from Tkinter import * 
admin = Tk() 
a = 1 

def up(): 
    global a 
    a += 1 

def upp(): 
    up() 
    print a 
print 'its ',a 
buttton = Button(admin, text='up', command=upp) 
buttton.pack() 
mainloop() 

내가 갖고 싶어를 "그"는 내가 버튼을 누를 때마다 시간을 이동합니다. 그래서 가지 ... 하나마다에 의해 갈 것 그 # 내가이 시험

답변

4

도움이되도록 코드를 재생 :이 값 1에서 시작됩니다

from Tkinter import * 
import itertools 

admin = Tk() 
a = itertools.count(1).next 


def upp(): 
    print a() 

buttton = Button(admin, text='up', command=upp) 
buttton.pack() 
mainloop() 

을 때마다 그 하나 더 추가하면 인쇄됩니다. 첫 번째로 누르면 표준 출력에 1이 표시됩니다.

+0

으악 (더 나은 솔루션에 대한 앨런의 대답을 참조). 코드를 인용 해 주셔서 고맙습니다. – Alan

+0

내 샘플을 테스트하고 편집했습니다. 내가 오해하지 않는 한 그가 요청하는대로 작동하는 것 같습니다. – Alan

+0

+1 youre right, 죄송합니다. – joaquin

1

def upp(): 
    up() 
    print 'its ', a 
buttton = Button(admin, text='up', command=upp) 
buttton.pack() 
mainloop() 

def upp(): 
    up() 
    print a 
print 'its ',a 
buttton = Button(admin, text='up', command=upp) 
buttton.pack() 
mainloop() 

를 교체하고 당신이 원하는대로 작동합니다.

업데이트 : 두 가지 기능이 필요하지 않습니다. 단순화 된 버전 :

from Tkinter import * 
admin = Tk() 
a = 0 

def upp(): 
    global a 
    a += 1 
    print 'its ', a 

buttton = Button(admin, text='up', command=upp) 
buttton.pack() 
mainloop() 

어쨌든 전역 변수는 피해야한다는