嵌套导入语句对Python性能的影响

2024-05-13 01:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序使用twitterapi在两个文件中展开。有一个文件专门用于发送和阅读tweet,所以我在该文件中添加了“importtwitter”行。第二个文件有一个import语句来导入这个基于twitter的文件,并从该文件调用“read”和“post”函数。你知道吗

这是代码的要点:

文件1:

import file2
file2.post(some text)

文件2:

import twitter
api = twitter.Api(...)
def post(text):    
    api.PostUpdate()

它运行得很好,并且完全符合我的预期,但是我不确定这是否是运行它的最有效的方式,从性能角度来看。“import twitter”行是否会在每次调用文件2时运行,并用重复的导入填充内存和时间?如果是这样的话,我会做得更好吗:

文件1:

import twitter
import file2
api = twitter.Api(...)
file2.post(some text, api)

文件2:

def post(text, api):
    api.PostUpdate(text)

api对象在文件间传递的位置。你知道吗

谢谢


Tags: 文件textimport程序apideftwittersome
1条回答
网友
1楼 · 发布于 2024-05-13 01:29:38

Import缓存所有导入,因此对于多个导入,它们只会在第一次执行导入后访问缓存的版本。请参阅https://docs.python.org/3/reference/import.html以了解其工作原理的详细信息。你知道吗

一般来说,您应该围绕模块正确的概念创建导入结构,性能不应该是这个决定的一个重要因素,因为老实说,当您获得正确的导入结构时,不会有太大的性能差异。如果在文件中使用某个模块中的内容,则应显式导入该模块。与此相关的是,确保您使用的每个模块都可以直接导入而不会出错,这将有助于您更好地设计模块,并避免由于importlib中的缓存机制而更改导入顺序可能导致错误的一类细微错误。你知道吗

相关问题 更多 >