【发布时间】:2013-04-11 09:35:48
【问题描述】:
在 Aptana 中配置 PyDev 的 Forced Builtins 时,我注意到默认情况下使用 _(下划线)前缀引用了一些模块。
所以我打开了一个 Python 解释器,令我惊讶的是,下面的导入工作:
import ast
import _ast
import bisect
import _bisect
import csv
import _csv
# ... and so on
现在,如果我对导入的模块执行dir(),我会看到不同的内容:
>>> dir(csv)
['Dialect', 'DictReader', 'DictWriter', 'Error', ...] # and so on
>>> dir(_csv)
['Dialect', 'Error', ...] # node that DictReader and DictWriter are missing
最后,help() 告诉我它们显然是不同的模块:
>>> help(_csv)
Help on module _csv:
NAME
_csv - CSV parsing and writing.
FILE
/usr/lib64/python2.6/lib-dynload/_csv.so
...
>>> help(csv)
Help on module csv:
NAME
csv - CSV parsing and writing.
FILE
/usr/lib64/python2.6/csv.py
...
那么,import module 和 import _module 有什么区别?
它背后是否有约定或类似的东西?
【问题讨论】:
标签: python python-import python-module