下面有一个简单的python3代码:
from tkinter import *
root = Tk()
e = Entry(root,width=30)
e.grid(row=0,column=0,columnspan=3)
e.delete(0,END)
root.mainloop()
我的问题是,第5行的END
论点是什么。我的意思是它不是一根绳子,那它是什么??这也不是一个变量。如果我将变量作为参数传递给函数,则需要对其进行预定义。那么END
参数从何而来???
它是字符串"结束"结束";是CCD_ 3小部件方法CCD_。它的意思是";文本的末尾";
它是在执行from tkinter import *
时从tkinter模块导入的。
这很好地说明了为什么通配符导入不是导入模块的首选方式——它隐藏了变量、函数和类的来源,并使代码更难理解。如果代码完成了import tkinter as tk
并随后使用了tk.END
,那么它的来源就很明显了。
它只是一个字符串"end",但在tkinter代码中有一个特殊的含义(允许您删除示例中的所有文本(。但这并不意味着你必须在那里传递一个字符串。也就是说,如果你不传入END,那么你可能会传入一个int——一个你想要删除的范围末尾的数字索引。例如
e.delete(0,5)
这将删除前四个字符。
从文档(https://effbot.org/tkinterbook/entry.htm#:~:text=结束%20(或%20%E2%80%9结束%E2%80%9D(,将%20从%20更改为%20程序。(,
";END(或"END"(对应于条目小部件中最后一个字符之后的位置。范围(0,END(对应于小部件中的所有字符">