地址见: autojump-中的import (第86-90行)
摘录部分如下(line: 86-90)
import copy as _copy
import os as _os
import re as _re
import sys as _sys
import textwrap as _textwrap
from gettext import gettext as _
为什么要将系统包重命名那样,不是多此一举么?
我的理解, 作为Python开发者,一般来说:
Python官方包也不算多
浸淫久了,自然耳濡目染耳熟能详,一般不会去重名(虽然理论上会)
用Python久了,导入哪个官方包,脑袋就会如同肌肉记忆一样
Linux
autojump
天蓬老师2017-04-18 09:35:31
這裡有答案:
Why are modules imported as _
舉個簡單的例子,比如說有模組 a, b,其中
# a.py
import os as _os
# import os
def cur_cwd():
print _os.getcwd()
另外,同目錄下的模組 b.py 如下:
from a import *
cur_cwd()
# print _os.getcwd()
b中不能使用 os,或 _os 。如果在 a.py 中直接引入 os,那麼 b.py 中就可以使用 os 了。
伊谢尔伦2017-04-18 09:35:31
一般來說確實有點多此一舉,不過有可能會有用戶自己定義的包、類,或者函數的名稱與標準庫的相同的情況,不過開發人員一般會避免這樣。
有一種可能是為了向引用這份程式碼的文件隱藏這份程式碼import的內容,例如有一份main.py import 了這個文件,就無法在main.py直接調用這些標準庫的函數,例如copy. copy()就不能直接使用,或許有這樣做必要性。