python - 一py文件中的中关于import的疑问?
高洛峰
高洛峰 2017-04-18 09:33:31
0
2
918

描述问题

地址见: 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开发者,一般来说:

  1. Python官方包也不算多

  2. 浸淫久了,自然耳濡目染耳熟能详,一般不会去重名(虽然理论上会)

  3. 用Python久了,导入哪个官方包,脑袋就会如同肌肉记忆一样

上下文环境

  1. Linux

  2. autojump

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
Peter_Zhu

這裡有答案:

Why are modules imported as _ in another module?

舉個簡單的例子,比如說有模組 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 了。

伊谢尔伦
  • 一般來說確實有點多此一舉,不過有可能會有用戶自己定義的包、類,或者函數的名稱與標準庫的相同的情況,不過開發人員一般會避免這樣。

  • 有一種可能是為了向引用這份程式碼的文件隱藏這份程式碼import的內容,例如有一份main.py import 了這個文件,就無法在main.py直接調用這些標準庫的函數,例如copy. copy()就不能直接使用,或許有這樣做必要性。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!