PhotoImage——省略选项名称

PhotoImage -- omitting option name

看到这里后,我想知道为什么省略选项的类型不会引发错误,而不是只是不显示图像?

此代码不显示图像而不会抛出任何错误

import tkinter as tk
root = tk.Tk()

image1 = tk.PhotoImage("ban.gif")
tk.Label(root,image=image1).pack()
tk.Label(root, text="some string here").pack()

root.mainloop()

但是这个很好用

import tkinter as tk
root = tk.Tk()

image1 = tk.PhotoImage(file="ban.gif")
tk.Label(root,image=image1).pack()
tk.Label(root, text="some string here").pack()

root.mainloop()

在 effbot 上它什么也没说所以我检查了 tcl 手册页 creating photos 但仍然找不到为什么它会这样。

另外,如果这两个是重复的,请告诉我,我会 delete/close 投票给这个。

当您在 python 中指定带有命名参数的函数时,这些命名参数以特定顺序出现。如果您在定义这些参数时没有提供名称,它们将按照参数在函数定义中出现的顺序应用。

对于 PhotoImage,第一个关键字参数用于图像的 名称,而不是文件路径。因此,PhotoImage("ban.gif")PhotoImage(name="ban.gif") 相同。它不会抛出错误,因为 "ban.gif" 是一个有效的名称,并且在某些用例中您希望在不引用文件的情况下创建图像。