地址见: 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
Inilah jawapannya:
Mengapa modul diimport sebagai _<nama> dalam modul lain?
Untuk memberikan contoh mudah, katakan terdapat modul a dan b, di mana
Selain itu, modul b.py dalam direktori yang sama adalah seperti berikut:
Anda tidak boleh menggunakan os atau _os dalam b. Jika os diperkenalkan secara langsung dalam a.py, maka os boleh digunakan dalam b.py.
Secara amnya, ini memang agak tidak perlu, tetapi mungkin terdapat kes di mana nama pakej, kelas atau fungsi yang ditentukan pengguna adalah sama dengan pustaka standard, tetapi pembangun biasanya mengelak perkara ini.
Satu kemungkinan ialah menyembunyikan kandungan import kod ini daripada fail yang merujuk kod ini Contohnya, jika main.py mengimport fail ini, fungsi perpustakaan standard ini tidak boleh dipanggil terus dalam main.py . contohnya, copy.copy() tidak boleh digunakan secara langsung dan mungkin perlu berbuat demikian.