使用import*在python程序中, 这是一个坏习惯, 因为这样会污染名称空间, import *语句会将所有函数和类导入你自己的名称空间, 这可能会与你定义的功能或导入的其他库的功能发生冲突。在某些时候, 很难说出特定功能来自哪个库。在导入*实践中, 始终存在覆盖变量/函数等的风险。
以下是有关为什么的一些要点import*不应使用:
- 代码可读性
- 导入的内容始终是一个谜, 无法轻易地从哪个模块中导入某些东西, 导致代码可读性低。
- 污染名称空间, import *导入你自己的名称空间中的所有函数和类, 它们可能与你定义的函数和类或你可能导入的其他库的函数和类发生冲突。
- 隐藏错误的具体可能性
- 诸如pyflakes之类的工具无法用于静态检测源代码中的错误。
现在, 让我们进入一个示例, 以更实际, 更易于理解的方式查看问题。
【为什么不推荐在Python中使用import*()】考虑包装一种包含一个功能总和(a, b)
# import the module a using import *
from a import *# define a function sum
def sum (x, y):
return x + yprint ( sum ( 2 , 6 ))
此代码的错误在于, 我们定义的sum函数会覆盖我们导入的模块” a” 中的sum函数, 甚至对此我们一无所知。在大型程序的情况下, 很难确定实际上正在调用哪个功能。
正确的方法:
# import the module a as l
import a as ldef sum (x, y):
return x + y# calls the self-defined sum function
print ( sum ( 2 , 6 ))# calls the sum function defined in the module a
print (l. sum ( 2 , 6 ))
这种编码方式提高了代码的可读性, 并且使调试变得容易, 发生冲突的几率几乎为零。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- 为什么优先队列优先使用二叉堆而不是BST()
- 为什么DNS使用UDP而不使用TCP()
- 为什么C将数组参数视为指针()
- 如何使用Python的网站拦截器(用法图解)
- Web爬网/爬虫–合法还是非法的()
- Python Web将冠状病毒数据收集到MS Excel中
- 网站信息检索|向量空间模型详细介绍
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)