📅  最后修改于: 2020-05-04 02:00:03             🧑  作者: Mango
在Python程序中使用import *被认为是一个坏习惯,因为这样会污染名称空间,import *语句会将所有函数和类导入您自己的名称空间,这可能会与您定义的函数或您所定义的其他库的函数发生冲突进口。在某些时候,很难说出某个特定函数来自哪个库。
在导入*练习中,始终存在覆盖变量/函数等的风险。
以下是有关为什么不应该使用导入*的几点:
所有这些并不意味着使用import *总是不好的,如果我告诉过您,在这个世界上没有像import *这样的东西,您会渴望得到它。使用import *时,您应该记住的唯一事情是,应始终谨慎使用并保持纪律。
现在,让我们深入一个示例,以更实际、更易于理解的方式查看问题。
考虑一个包含函数和(a,b)的包a
# 使用import *导入模块
from a import *
# 定义函数和
def sum (x, y):
return x + y
print (sum (2, 6))
这段代码的错误是,我们定义的sum函数会覆盖我们导入的模块“ a”中的sum函数,我们甚至对此一无所知。在大型程序的情况下,很难确定实际上正在调用哪个函数。
正确的方法:
# 将模块a导入为l
import a as l
def sum (x, y):
return x + y
# 调用自定义求和函数
print (sum (2, 6))
# 调用模块中定义的求和函数
print (l.sum(2, 6))
这样编码可以提高代码的可读性,并且易于调试,发生任何冲突的可能性为零。