我知道您可以使用“fromfooimportbar”,但是,这实际上仍然会导入所有数据。我之所以知道这一点,是因为我有一个包含变量的文件,其中一个变量包含大量数据。举一个伪例子,假设所讨论的变量是foo,它包含数字1-100000000,加载所有这些数字大约需要2分钟
这只是一个例子,实际数据要复杂得多
无论如何,其他变量只是个位数或小列表或目录。然而,当我尝试导入其中任何一个数据时,所用的时间与我尝试导入foo中的所有数据所用的时间一样长。同样,即使使用“From foo import bar”表示法,这也是正确的
我能想到的唯一解决方案是将这些变量存储在单独的文件中,然后在需要时从文件集中只读取我需要的内容,因此,每当我需要导入某个内容时,除非它是变量foo,否则不会花费很长时间
当然,这不如将变量存储在一个文件中那么简单,所以我想知道是否有一种方法可以做到这一点,而不必同时导入所有内容
我会说,当导入一次时,再次运行程序只需要大约两秒钟,这很好,但是,我需要在多个模块中导入所述数据,因此我现在的设计非常不理想
提前谢谢你的帮助
导入模块时,将对其进行解释(执行模块脚本)。您所能做的就是为您的特殊重变量使用代理。请注意,在正常使用中,模块是单例的,因此只加载一次。
from foo import bar
只是在globals()
范围内存储变量引用的一种方法见:
关于惰性子模块导入的报价:
相关问题 更多 >
编程相关推荐