Python错误; ' NoneType'对象没有属性'之后'

时间:2015-07-11 16:50:51

标签: python tkinter

我在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'

2 个答案:

答案 0 :(得分:4)

您正在将主变量设置为println(),因为您通过在以下行中将参数作为None传递来创建App1对象 -

None

因此,当您致电 - root = App1(None) 时,您将获得self.master.after(1 , self.update_reading),因为self.master为无。

我不确定你想要实现什么,但你可以尝试将AttributeError设置为除None以外的其他内容(无论你想要的是什么)。

答案 1 :(得分:2)

错误不言自明:self.masterNone。它来自

 root = App1(None)

如果您需要计时器,请参阅此question,例如:

self.root.after(1 , self.update_reading)