这两者之间的区别是什么

时间:2018-06-14 19:41:37

标签: python class tkinter

有人可以解释

之间的区别
import tkinter as tk

from tkinter import *

如果有人可以给出相同任务的例子,那就太棒了 通过单独使用这两个语句来实现(或创建一个对象)

3 个答案:

答案 0 :(得分:1)

简单地说,导入tkinter作为tk将在你的文件中启动一个tkinter的tk实例,它可以通过编写像

这样的函数来调用它的函数
import numpy as np
import scipy
from scipy import signal
from numpy.fft import ifft2, fft2

imgSize = 4
filtSize = 3
padFilt = imgSize - filtSize
testImg = np.random.uniform(0,1,(imgSize,imgSize))
filter = np.random.normal(0,3.0,(filtSize,filtSize))


circConv = scipy.signal.convolve2d(testImg, filter, boundary="wrap", mode="same")

filterFFT = np.pad(filter,((0,padFilt),(0,padFilt)),'constant')
fftConv = np.real(ifft2(fft2(testImg) * fft2(filterFFT)))

# Roll the FFT output to match the wrap output
fftConv = np.roll(fftConv, (-((filterFFT.shape[0] - 1) // 2), -((filterFFT.shape[1] - 1) // 2)), axis=(0, 1))
print(circConv)
print(fftConv)

这样可以避免输入长名称。

来自tkinter import *将导入tk.Entry() 变量下定义的所有名称,因此您可以调用与

相同的函数
__all__

您应该阅读This以了解更多

答案 1 :(得分:0)

两者都导入相同的包。主要区别在于您的第一行是导入包tkinter然后使用“tk”引用它,这将允许您使用该不同的名称调用其函数。我对tkinter没有任何经验,但我能给出的一个很好的例子就是numpy或pandas。 numpy中的很多函数,比如numpy.random.randn(),可以使用“import as”用简写名称编写,如下所示:

import numpy as np
np.random.randn()

答案 2 :(得分:0)

差异接缝起初很少,但import tkinter as tk实际上是一个更好的选择,原因很简单。

通过导入特定的内容,您可以使该导入中的所有方法都需要prifix。这可以防止方法意外覆盖或被覆盖。

例如,如果我有一个包含time()方法的库,并且要求调用此库custom_timer,然后说我还需要导入内置的time方法。

如果我导入使用*,我们就会遇到问题。

from custom_timer import * # importing all modules including time() form this library.
import time # importing built in time().

最终会发生什么是第二次导入将覆盖第一次导入时的time方法。为了防止这样的事故,我们可以简单import as your_prefix_here

举个例子。

import custom_timer as ct # importing this library as ct.
import time # importing built in time().

在这种情况下,我们将有2个不同的时间导入,不会互相覆盖。

一个是ct.time(),另一个是time()

由于像tkinter这样的库包含许多方法,因此出于上述原因使用import as经文import *更安全。

所有这一切都说,如果你匆忙,只是想把一些东西放在一起测试一个想法或使用from tkinter import *回答问题对于小得多的应用程序来说是好的。就个人而言,我尝试使用import tkinter as tk来做好我练习的所有事情。

至于您对2个示例的请求,请参阅下文。

使用tk导入:

import tkinter as tk

root = tk.Tk()

tk.Label(root, text="I am a label made using tk prefix.")

root.mainloop()

使用*导入:

from tkinter import *

root = Tk()

Label(root, text="I am a label made in tkinter with the * import.")

root.mainloop()