2010-06-01 4 views
1

я наткнулся на следующий код в скрипте Pythonстранно (?) Модуль синтаксиса импорта

from pprint import pprint 

почему бы не просто import pprint?

Если модуль pprint не содержит функцию под названием pprint, которая в настоящее время псевдонимом, как pprint (конечно, это должно быть определение безумия?)

+0

Думаю, вы ответили на свой вопрос. – scribu

+3

Вы ответили на свой вопрос. И это не безумие. Этот метод называется pprint, и он находится в модуле pprint. – extraneon

+0

Зачем вызывать модуль с именем 'pprint', который содержит функцию' pprint' безумия? Что с этим не так? Можете ли вы обновить свой вопрос, чтобы объяснить, что вы подразумеваете под «безумием»? –

ответ

3

Он содержит функцию pprint, и это именно то, что происходит. Я предпочитаю набирать pprint, а не pprint.pprint или decimal.Decimal, или datetime.datetime.now() - не так ли?

+0

eloff: +1 для случая использования, объясняющего, почему кто-то захочет это сделать. хорошо, я вижу, что происходит. Модули предоставляют своего рода «пространство имен» для объектов Python. Все еще чувствует себя немного странно, но, наверное, я привыкну к этому. – morpheous

0

Ваша вера является правильным, но это не «псевдонимами» в любом случае , Он просто называется pprint, что не является нарушением руководства по стилю Python.

1

Да, синтаксис from module import functions, поэтому первый pprint - это имя модуля, а второе - имя функции.

Смежные вопросы