簡體   English   中英

Python中“導入為”的用例

[英]Use case for “import as” in Python

我想知道我們是否可以使用“ import as ”來創建相對緊湊或可讀的代碼。 我知道它基於PEP的通常用例,例如使名稱沖突無效。

這里就是這種情況(出於演示目的,使其非常簡單)。 假設我有一個模塊名稱,process_words.py。

process_words.py:

def word_to_lower(word):
    return word.lower

process_article.py(讓主腳本):

import process_words

word = "HELLO"
word_lower = process_words.word_to_lower(word)
print(word_lower)

現在,做這樣的事情是不好還是好的做法?:

import process_words as pw

word = "HELLO"
word_lower = pw.word_to_lower(word)
print(word_lower)

這是一個非常簡單的例子。 我有幾個模塊,每個模塊都有幾個功能。 from module import something導入每個函數都不是選擇。 在我看來,如果我將import和一些快捷方式名稱一起使用,它將提高代碼的可讀性。 有什么想法嗎?

注意:我在這里指的是自定義模塊。

一個實際的問題是,您開始更改使用的庫或模塊,並且可以在不更改代碼的情況下切換實際的導入: import somemodule將變為import newmodule as somemodule

當具有Python 2/3兼容代碼時,我會在try-except塊中執行此操作(我想像six這樣的軟件包有很多這樣的功能)。 例如:

try:
    # Are we using Python 2?
    import StringIO as io
except ImportError:
    # No, we're using Python 3 instead
    import io

通常應盡可能避免這種情況。

但是,當導入名稱無處不在時,例如numpy 始終為 np ,pandas 始終為 pd時,它會起到很大的作用。 您不必查找名稱,您可以坐在一個看不見的代碼庫前面:您看到np.array知道發生了什么。 盡管它只是稍短一些,但可以更輕松地跳過它。

另一個有用的時間是在一個單個模塊中,該模塊在各處使用另一個模塊,每隔幾行或十行就是對該模塊的調用。 然后,我將考慮使用as導入來減少文件的大小(用於讀取)。
我之前用flask應用程序做到了這一點,該應用程序非常薄地包裹着(可測試的)模塊。

如果僅是內部API(並且上下文中的含義是完全清楚的),那么將其命名為pw.py而不是process_words.py也許是有意義的。 IMO在短期方面有點差,但是words.py可能會很好用(但是“ process”是一個通用詞,所以我可能會找一個更具體的動詞...)。
上下文很重要,作為words的子模塊,例如將其稱為funcs可能有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM