考虑以下:
class objectTest():
def __init__(self,a):
self.value = a
def get_value(self):
return self.value
class execute():
def __init__(self):
a = objectTest(1)
b = objectTest(1)
print(a == b)
print(a.get_value() == b.get_value)
print(a.get_value() == b.get_value())
print(a.get_value == b.get_value)
if __name__ == '__main__':
execute = execute();
Run Code Online (Sandbox Code Playgroud)
此代码返回
>>>
False
False
True
False
Run Code Online (Sandbox Code Playgroud)
鉴于get_value是一个函数,我希望执行停止并返回错误,但事实并非如此.有人可以解释为什么python解释器允许这种语法而不是引发属性错误,这在我的情况下会节省我宝贵的时间.
当试图中断tkinter应用程序时,似乎time.sleep()将一些先前的命令置于保持状态.根据我的理解和以前的经验,label1的文本应设置为"之前"一秒钟,然后更改为"之后".但是,"before"值永远不会显示,并且"after"在执行后正常打印一秒钟.
from tkinter import *
import time
class Display(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
label1 = Label(text = "before")
label1.grid()
self.after(1000, label1.config(text = "after"))
def main():
root = Tk()
Display(root)
root.mainloop()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
请注意,在(...)之后使用time.sleep(...)会产生与tkinter相同的结果
from tkinter import *
import time
class Display(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
label1 = Label(text = "before")
label1.grid()
time.sleep(1)
label1.config(text = "after")
def main():
root = Tk()
Display(root)
root.mainloop()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我想tkinter正在等待某些东西来执行图形工作(控制台没有问题)但是我没有看到什么,而且tkinter doc没有解决这个问题. …