Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有不使用参数将变量传递给函数的方法?_Python_Parameter Passing - Fatal编程技术网

Python 有没有不使用参数将变量传递给函数的方法?

Python 有没有不使用参数将变量传递给函数的方法?,python,parameter-passing,Python,Parameter Passing,我想用Python制作一个闹钟。我遇到的问题在于displayTime函数。它应该倒计时,直到闹钟响为止 我需要将aTime变量传递到displayTime函数中。但是,如果我将aTime设置为displayTime函数的参数,则不能将displayTime用作timelabel.aftertimelabel.after1000,displaytimetime的参数,因为它将使其成为displayTime的实例而不是参数 既然displayTime嵌套在alarm函数中,为什么它不从alarm继

我想用Python制作一个闹钟。我遇到的问题在于displayTime函数。它应该倒计时,直到闹钟响为止

我需要将aTime变量传递到displayTime函数中。但是,如果我将aTime设置为displayTime函数的参数,则不能将displayTime用作timelabel.aftertimelabel.after1000,displaytimetime的参数,因为它将使其成为displayTime的实例而不是参数

既然displayTime嵌套在alarm函数中,为什么它不从alarm继承aTime

还有,我怎样才能让时间进入显示时间?除了使用参数,还有其他方法吗

代码如下:

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参数。是我错了,还是这就是错误的原因?只要去掉大括号就行了。只使用显示时间