在我的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 *
。
您可以在模块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] 删除。
我来说两句