Python自动导入

时间:2009-09-29 17:20:24

标签: python

  

可能重复:
  Perl's AUTOLOAD in Python (getattr on a module)

我来自PHP背景并尝试学习Python,我希望确保以“Python方式”而不是之前的方式开展工作。

我的问题来自PHP5中您可以设置代码的事实,因此如果您尝试调用命名空间中不存在的类,将首先运行一个函数,该函数将加载该类并允许您继续好像它已经装好了。这样做的好处是除非调用类,否则不会加载类,并且在使用类之前不必担心加载类。

在python中,有很多强调import语句,尝试使用python自动导入技巧是不好的做法,以减少对import语句的需求?我发现this module提供了自动导入功能,但是我不知道这是不是最好的方法,或者是否建议自动导入模块,想法?

4 个答案:

答案 0 :(得分:13)

除了使模块的模块或内容可用之外,Imports至少还有两个重要目的:

  1. 它们用作一种意图声明 - “此模块使用来自此其他模块的服务”或“此模块使用属于某个类的服务” - 例如如果您正在对套接字处理代码进行安全性审查,则可以首先查看导入socket(或其他与网络相关的模块)的模块
  2. Imports可作为模块复杂性的代理。如果您发现自己有数十种进口线,那么可能是时候重新考虑您在模块内或整个应用程序中的问题分离。这也是避免“from foo import *”类型导入的一个很好的理由。

答案 1 :(得分:10)

在Python中,人们通常会避免自动导入,因为它不值得付出努力。您可能会略微删除启动成本,但除此之外,没有(或应该没有)显着影响。如果你有导入​​昂贵的模块并做很多不需要做的事情,那么重写模块而不是延迟导入它。

也就是说,汽车进口没有任何内在错误。由于代理性质,可能存在一些缺陷(例如,当查看尚未导入的东西时)。几个自动导入库浮动。

答案 2 :(得分:1)

如果您正在学习Python并希望以Python方式执行操作,那么只需导入模块即可。在Python代码中找到自动导入是非常非常

答案 3 :(得分:1)

你可以自动导入模块,但我需要导入的大部分是大约10,这是在我在原始程序之上添加功能之后。你不会进口很多东西,名字很容易记住。