2010-06-01 83 views
1

我遇到下面的代碼在Python腳本怪(?)模塊導入語法

from pprint import pprint 

何不乾脆import pprint

除非模塊pprint包含正在別名爲pprint一個函數調用pprint(當然,這必須是瘋狂的定義是什麼?)

+0

我想你已經回答了你自己的問題。 – scribu 2010-06-01 13:48:53

+3

你回答了你自己的問題。這不是瘋狂。該方法只是名爲pprint,它位於模塊pprint中。 – extraneon 2010-06-01 13:48:59

+0

爲什麼調用一個名爲'pprint'的模塊包含一個函數'pprint'瘋狂?它出什麼問題了?你能否更新你的問題來解釋「瘋狂」是什麼意思? – 2010-06-01 13:49:53

回答

3

它確實包含一個函數pprint,這正是發生了什麼事情。我更喜歡輸入pprint,而不是pprint.pprint或decimal.Decimal,或datetime.datetime.now() - 是不是?

+0

eloff:用於解釋爲什麼任何人想要這樣做的用例的+1。好吧,我看到發生了什麼。模塊爲Python對象提供了一種「命名空間」。儘管如此,我仍覺得有點不可思議 - 我想,我會習慣的。 – morpheous 2010-06-01 13:52:27

0

你的信念是正確的,但在任何方式,它不是「別名」 。它簡單地命名爲pprint,它不違反任何Python風格指南。

1

是的,語法是from module import functions,所以第一個pprint是模塊名稱,第二個是函數名稱。