What's the difference between these two
有人能解释一下
1 | import tkinter as tk |
和
1 | from tkinter import * |
如果有人能举出同样任务的例子,那就太好了。通过单独使用这两个语句实现(或创建对象)
简单地说,import tkinter a s tk将在您的文件中启动tkinter的tk实例,该实例可以通过编写类似
1 | tk.Entry() |
这将使您免于键入长名称。
而from tkinter import*将导入
1 | Entry() |
你应该读这个来了解更多
一开始差异不大,但由于一个重要原因,
通过将导入作为特定的内容,可以使该导入的所有方法都需要prifix。这可以防止方法被重写或意外重写。
例如,如果我有一个包含
如果用
1 2 | from custom_timer import * # importing all modules including time() form this library. import time # importing built in time(). |
最终会发生的是第二次导入将覆盖第一次导入的时间方法。为了防止这样的事故,我们可以简单地使用
以这个例子为例。
1 2 | import custom_timer as ct # importing this library as ct. import time # importing built in time(). |
在这种情况下,我们将有两个不同的时间导入,不会相互覆盖。
一个是
因为像tkinter这样的库包含许多方法,因此使用
如果你赶时间,只是想用
关于您对2个示例的请求,请参见下文。
进口
1 2 3 4 5 6 7 | import tkinter as tk root = tk.Tk() tk.Label(root, text="I am a label made using tk prefix.") root.mainloop() |
使用
1 2 3 4 5 6 7 | from tkinter import * root = Tk() Label(root, text="I am a label made in tkinter with the * import.") root.mainloop() |
两者都导入同一个包。主要区别在于,您的第一行是导入包tkinter,然后用"tk"引用它,这将允许您使用不同的名称调用它的函数。我对特金特没有任何经验,但我能举一个很好的例子,那就是麻木或者熊猫。numpy中的很多函数,比如numpy.random.randn()可以用一个简短的名字来写,比如:
1 2 | import numpy as np np.random.randn() |