Python 有没有不使用参数将变量传递给函数的方法?
我想用Python制作一个闹钟。我遇到的问题在于displayTime函数。它应该倒计时,直到闹钟响为止 我需要将aTime变量传递到displayTime函数中。但是,如果我将aTime设置为displayTime函数的参数,则不能将displayTime用作timelabel.aftertimelabel.after1000,displaytimetime的参数,因为它将使其成为displayTime的实例而不是参数 既然displayTime嵌套在alarm函数中,为什么它不从alarm继承aTime 还有,我怎样才能让时间进入显示时间?除了使用参数,还有其他方法吗 代码如下:Python 有没有不使用参数将变量传递给函数的方法?,python,parameter-passing,Python,Parameter Passing,我想用Python制作一个闹钟。我遇到的问题在于displayTime函数。它应该倒计时,直到闹钟响为止 我需要将aTime变量传递到displayTime函数中。但是,如果我将aTime设置为displayTime函数的参数,则不能将displayTime用作timelabel.aftertimelabel.after1000,displaytimetime的参数,因为它将使其成为displayTime的实例而不是参数 既然displayTime嵌套在alarm函数中,为什么它不从alarm继
from Tkinter import *
import time
def alarm() :
cHours = float(nHours.get())
cHours = cHours * 3600
cMinutes = float(nMinutes.get())
cMinutes = cMinutes * 60
aTime = cHours + cMinutes
print aTime
def displayTime():
timelabel = Label(alarmGUI, text = "%d seconds until it's time to wake up" % aTime)
timelabel.grid(row=9, column=0)
aTime -=1
timelabel.after(1000, displayTime)
displayTime()
alarmGUI = Tk()
alarmGUI.geometry('500x400')
alarmGUI.title("Alarm Clock")
nHours = IntVar()
nMinutes = IntVar()
label1 = Label(alarmGUI, text = "Enter the number of hours and number of minutes that you want to sleep").grid(row=1, column=1)
label2 = Label(alarmGUI, text = "Hours").grid(row = 3, column = 0)
label3 = Label(alarmGUI, text = "Minutes").grid(row = 5, column = 0)
hours = Entry(alarmGUI, textvariable = nHours).grid(row = 3, column = 1)
minutes = Entry(alarmGUI, textvariable = nMinutes).grid(row = 5, column = 1)
button1 = Button(alarmGUI, text = "Start", command = alarm).grid(row = 7, column = 0)
alarmGUI.mainloop()
你是什么意思?displayTime不是alarm的子类,它只是嵌套在alarm中。另外,请注意,您已经制作了一个经典的Tkinter错误小部件…网格。。。将返回None,因此所有引用都将无效。您可以将函数对象作为参数传递。只需使用函数名;不要调用它。我想既然它嵌套在内部,它就可以访问alarm内部的变量,我想这只适用于子类。@tyteen4a03如果我这样做,那么我会得到一个错误。TypeError:displayTime只接受1个参数0,我认为这是因为当displayTime用作after函数的参数时,没有传递aTime参数。是我错了,还是这就是错误的原因?只要去掉大括号就行了。只使用显示时间