什么时候在文件底部导入模块

时间:2012-10-25 07:10:16

标签: python

当我读取文件riak-python-client/riak/riak_object.py时。在文件的底部,我看到了这个

from mapreduce import *

它用于什么?为什么只导入文件的顶部。

4 个答案:

答案 0 :(得分:2)

这旨在将所有模块mapreduce放在riak_object命名空间中。如果您将此导入放在riak_object.py的顶部,则会出现错误,因为mapreduceRiakObject导入riak_object,但尚未定义。

答案 1 :(得分:0)

您可以在文件中的任意位置使用import;你必须确保在导入之前不要尝试使用模块中的东西。

如果这实际上是文件中运行的最后一行,那么它不会用于任何目的。如果它位于文件的底部但在某个函数或方法中,则可能意味着该函数/方法不经常运行,并且作者不希望每次运行程序时导入mapreduce的开销。

答案 2 :(得分:0)

我不知道该项目的具体原因,只是将导入放在文件的顶部。这使得依赖项更容易跟踪,Python's style guide建议使用它。

从技术上讲,import语句导入的代码仅在执行import语句后才可用。这意味着当您将其放在文件的底部时,您无法使用该文件中导入的任何内容(在模块级别)。该文件中的函数可以使用导入......但这只是不好的做法。

答案 3 :(得分:0)

唯一的原因是riak_object(似乎不需要mapreduce中的任何内容?)将所有值(或__all__指定的值)引入其命名空间来自mapreduce作为某种便利。