当我阅读文件时riak-python-client/riak/riak_object.py
。在文件的底部,我看到了这个
from mapreduce import *
它有什么用?为什么只在文件顶部导入。
当我阅读文件时riak-python-client/riak/riak_object.py
。在文件的底部,我看到了这个
from mapreduce import *
它有什么用?为什么只在文件顶部导入。
这旨在将所有模块mapreduce
放在riak_object
名称空间中。如果将此导入放在 的顶部riak_object.py
,则会出现错误,因为mapreduce
导入RiakObject
fromriak_object
尚未定义。
您可以import
在文件中的任何位置使用 ;您只需要确保在导入模块之前不要尝试使用模块中的内容。
如果这实际上是文件中运行的最后一行,那么它将没有任何用途。如果它在文件的底部但在某个函数或方法中,这可能意味着该函数/方法不经常运行,并且作者不希望mapreduce
每次运行程序时都需要导入的开销。
我不知道该项目的具体原因,但只是将导入放在文件的顶部。这使得依赖关系更容易跟踪,Python 的样式指南推荐使用它。
从技术上讲,语句导入的代码只有在语句执行import
后才可用import
。这意味着当您将它放在文件的底部时,您不能使用在该文件中导入的任何内容(在模块级别)。该文件中的函数可以使用导入......但这只是不好的做法。
唯一的原因是riak_object
(似乎不需要来自 ? 的任何东西)将所有值(或由 指定的值)mapreduce
带入其命名空间,以作为某种便利。__all__
mapreduce