如何在Python模块中不导入导入的子模块?

2024-10-02 04:23:20 发布

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

在Python模块中,我经常使用子模块,如datetime。问题是这些模块可以从外部访问:

# module foo
import datetime

def foosay(a):
    print "Foo say: %s" % a

来自IPython:

import foo
foo.datetime.datetime.now()

我想知道如何正确地隐藏作为foo内部业务的子模块

我天真地想到了import datetime as _datetime甚至import datetime as __datetime,但这不是一个非常令人愉快的解决方案。我也读过__all__,但它只涉及使用from foo import *导入的内容


Tags: 模块importdatetimefoodefasipython业务
1条回答
网友
1楼 · 发布于 2024-10-02 04:23:20

您可以在模块foo中使用它的函数中执行导入日期时间:

def foodate():
    import datetime
    print datetime.datetime.now()

def foosay(a):
    print "Foo say: %s" % a

现在导入foo将不会导入datetime

编辑:您还可以通过不导入整个datetime模块来减少内存占用,只导入所需的方法/函数:

from datetime.datetime import now

相关问题 更多 >

    热门问题