空说import和from...import...的区别,比较抽象。举个例子
定义一个函数myadd,并将这个函数命名为diguilist.py,保存到diguilist的文件夹中。也就是创建了一个diguilist的模块:
def myadd(item):
for n in item:
print("n=",n)
if isinstance(n,list):
myadd(n)
else:
print(n)
现在,有一个list,想调用diguilist的模块中的myadd函数,实现list的遍历。创建一个新的list
cast = ["food", "fruit", ["apple", "strawberry", "cherry"]]
如果是用import调用,则代码如下:
import diguilist
cast = ["food", "fruit", ["apple", "strawberry", "cherry"]]
diguilist.myadd(cast) #需要注明myadd这个函数是来自哪个模块,不然(如果去掉 diguilist.)会报错:“myadd” is not defined
如果是用from...import...调用,则代码如下:
from diguilist import myadd
cast = ["food", "fruit", ["apple", "strawberry", "cherry"]]
myadd(cast)
所以,from...import...会限定导入的函数是哪个模块的。而import则没有这个功能。相比之下,还是更喜欢from...import...的语句
不过需要注意的一点就是:如果当前的编辑器中已经定义了一个myadd的函数,那么import语句会用导入的函数覆盖本编辑器定义的函数。