我在使用 Python 编码时出错。 需要一次又一次地打印相同的随机值。
from Tkinter import *
import Tkinter
from random import randint
class App1(Tkinter.Tk):
def __init__(self, master):
Tkinter.Tk.__init__(self,master)
self.master = master
self.label = Label(self , text = "Voltage" , font = ("Helvetica",32))
self.label.grid(row = 0)
self.reading_label = Label(self,text = '0.0' , font = ("Helvetica",110))
self.reading_label.grid(row = 1)
self.update_reading()
def update_reading(self):
value = randint(0,9)
reading_str = "{:.2f}".format(value)
self.reading_label.configure(text = reading_str)
self.master.after(1 , self.update_reading)
root = App1(None)
root.title("Option")
root.geometry("320x240")
root.mainloop()
我收到错误信息:
Traceback (most recent call last):
File "/voltmeter.py", line 26, in <module>
root = App1(None)
File "/voltmeter.py", line 16, in __init__
self.update_reading()
File "/voltmeter.py", line 23, in update_reading
self.master.after(1 , self.update_reading)
AttributeError: 'NoneType' object has no attribute 'after'
请您参考如下方法:
您正在将主变量设置为 None,因为您通过在以下行中将参数作为 None 传递来创建 App1 对象 -
root = App1(None)
因此,当您调用 - self.master.after(1 , self.update_reading) 时,您将收到 AttributeError ,因为 self.master 为 None。
我不确定你想要实现什么,但你可以尝试将 self.master 设置为 None 以外的其他内容(无论你想要它是什么)。
