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

Nowox

在我的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 *

TaipanRex

您可以在模块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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章