每次在Python 2.7中调用外部文件中的函数时,都会重新初始化变量

时间:2014-11-29 23:01:54

标签: python function python-2.7

我目前从我编写的较大文件中导入一个函数 - 例如:

     from my_other_file import my_function

我导入的函数使用在my_other_file内的其他位置初始化的字典(即在我的代码顶部我将CVS文件导入字典,然后由函数使用)。

如果我反复调用此函数(例如在迭代循环时),是否每次都会重复重新生成字典? (或者一旦它被初始化,它可以在以后通过该函数调用)。我问,因为字典来自的CSV文件是相当大的(50MB),因此我怀疑如果必须在每次调用函数时读取该文件,我的代码将是非常低效的。如果它通常会被重新初始化,那么阻止这种情况发生的方法是什么呢?

1 个答案:

答案 0 :(得分:3)

不,多次导入模块只执行一次模块代码。

导入实际上只是创建对导入代码的导入名称的引用。 正在加载模块仅执行一次,结果存储在sys.modules中,以支持名称导入。

请参阅import statement documentation

  

基本import语句(无from子句)分两步执行:

     
      
  1. 找到一个模块,加载并初始化如有必要
  2.   
  3. import语句出现的范围的本地名称空间中定义一个或多个名称。
  4.   

强调我的;加载后,您无需再次加载。