Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 何时导入文件底部的模块_Python - Fatal编程技术网

Python 何时导入文件底部的模块

Python 何时导入文件底部的模块,python,Python,当我读取文件riak python client/riak/riak\u object.py时。在文件的底部,我看到了这个 from mapreduce import * 它有什么用?为什么只在文件顶部导入呢。您可以在文件中的任何位置使用导入;您只需确保在导入模块之前不要尝试使用模块中的内容 如果这实际上是文件中运行的最后一行,那么它就没有任何用途。如果它位于文件的底部,但在某个函数或方法中,则可能意味着该函数/方法不经常运行,作者不希望每次运行程序时都要导入mapreduce。我不知道该项目

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

from mapreduce import *

它有什么用?为什么只在文件顶部导入呢。

您可以在文件中的任何位置使用
导入
;您只需确保在导入模块之前不要尝试使用模块中的内容


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

我不知道该项目的具体原因,但只需将导入放在文件的顶部即可。这使得依赖项更容易跟踪,这是推荐的


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

唯一的原因是
riak_对象(它似乎不需要
mapreduce
?)将所有值(或
\uuuu all\uu
指定的值)带入其命名空间从
mapreduce
作为某种便利。

这是为了将所有模块
mapreduce
放在
riak_对象
命名空间中。如果将此导入放在
riak_object.py
的顶部,则会出现错误,因为
mapreduce
riak_object
导入
RiakObject
,该对象尚未定义