Python 是不是;从模块导入*;影响程序的执行时间

Python 是不是;从模块导入*;影响程序的执行时间,python,import,module,Python,Import,Module,请告诉我模块导入的语句*是否会影响程序的执行时间。我之所以问这个问题,是因为它导入了模块中所有可用的函数。是的。加载到解释器中的每个函数都需要资源。编程模块时,通常不鼓励使用import*。与模块一起直接调用函数(例如numpy.cos,而不是导入cos)也会快一点。如果您想亲自查看,可以使用timeit或cProfile进行一些测试。这不会节省任何时间。我刚刚用时间模块测试了它。无论是导入整个模块还是从中导入某些内容,都没有区别。不必为您想要使用的每个函数编写模块名,这非常方便。可能会有微不足

请告诉我模块导入的
语句*
是否会影响程序的执行时间。我之所以问这个问题,是因为它导入了模块中所有可用的函数。

是的。加载到解释器中的每个函数都需要资源。编程模块时,通常不鼓励使用
import*
。与模块一起直接调用函数(例如numpy.cos,而不是导入cos)也会快一点。如果您想亲自查看,可以使用timeit或cProfile进行一些测试。

这不会节省任何时间。我刚刚用时间模块测试了它。无论是导入整个模块还是从中导入某些内容,都没有区别。不必为您想要使用的每个函数编写模块名,这非常方便。

可能会有微不足道的差异,但无需担心。有更好的理由不使用
import*
:取决于*:)导入x和
从x导入*
之间的区别在于,第二个原因是将
x
中的名称分配给要导入的命名空间中的变量。两个版本仍然执行整个模块
x
。执行时间上的任何差异都可以忽略。“import module”语句还从模块中导入所有函数,因此它们都是相同的。不,它们不是。通过使用模块导入smth中的
可以将函数/oject smth直接加载到名称空间中。导入模块时,不会将内容本身加载到命名空间中。例如,这就是在从python2到python3的转换过程中删除
过滤器
以精简名称空间的原因。编辑:从内置名称空间中删除,以便更具体。