我试图理解设计方面的一些事情.
我看到了许多使用Lazy Import功能的代码.通过Lazy Import,我的意思是由某些配方,包和模块提供的设施,它们支持"LazyImport"风格.这些实现通常旨在仅在使用模块时导入模块,并为不同的事物提供一些额外的钩子.我知道错误条件在这里延迟了,但我试图理解为什么Lazy Import不是Python中的默认策略.
什么(其他)缺点是阻止它做出一般有用的案例.或者是否有语言将其用作默认导入机制策略.
这是python中延迟导入的示例:
def xmlfrobnicator(xmlstr):
from lxml import etree
# do whatever
Run Code Online (Sandbox Code Playgroud)
它不常用,因为它对大多数程序几乎没有什么好处——一旦加载,模块就会被加载(除非你采取措施卸载它),而且很少有依赖项很少使用,以至于只在加载时加载它使用是值得的。
我想你可能一直在看 javascript,其中程序可能只运行很短的时间,并且没有使用它们的所有功能,即使它们使用了,模块的后台加载也提高了用户感知的速度。
与 PHP 等不同,Python 很少以每个请求/操作/... 都会导致整个应用程序重新启动的方式使用。
因此,在启动时导入所有内容的优点是,当应用程序正在执行一些令人烦恼的延迟时,不必执行导入。
本地/延迟导入的唯一优点是循环导入不会出现问题。
| 归档时间: |
|
| 查看次数: |
4201 次 |
| 最近记录: |