Python 奇怪的(?)模块导入语法
我在Python脚本中遇到了以下代码Python 奇怪的(?)模块导入语法,python,import,Python,Import,我在Python脚本中遇到了以下代码 from pprint import pprint 为什么不直接导入pprint呢 除非模块pprint包含一个名为pprint的函数,该函数被别名为pprint(当然,这一定是疯狂的定义?)您的观点是正确的,但它没有任何“别名”。它只是被命名为pprint,这并不违反任何Python风格指南。您的观点是正确的,但它没有任何“别名”。它被简单地命名为pprint,这并不违反任何Python风格指南。是的,语法是来自模块导入函数的,因此第一个pprint是模
from pprint import pprint
为什么不直接导入pprint呢
除非模块pprint包含一个名为pprint的函数,该函数被别名为pprint(当然,这一定是疯狂的定义?)您的观点是正确的,但它没有任何“别名”。它只是被命名为
pprint
,这并不违反任何Python风格指南。您的观点是正确的,但它没有任何“别名”。它被简单地命名为pprint
,这并不违反任何Python风格指南。是的,语法是来自模块导入函数的,因此第一个pprint是模块名,第二个是函数名。是的,语法是来自模块导入函数的,因此,第一个pprint是模块名,第二个是函数名。它确实包含一个函数pprint,这正是发生的事情。我更喜欢键入pprint,而不是pprint.pprint,或decimal.decimal,或datetime.datetime.now()-是吗?它确实包含一个函数pprint,这正是发生的事情。我更喜欢键入pprint,而不是pprint.pprint,或decimal.decimal,或datetime.datetime.now()-是吗?我想你已经回答了你自己的问题。你回答了你自己的问题。这不是疯狂。方法名为pprint,它位于模块pprint中。为什么要调用名为pprint
的模块,该模块包含函数pprint
madness?怎么了?你能更新你的问题来解释你所说的“疯狂”是什么意思吗?我想你已经回答了你自己的问题。你回答了你自己的问题。这不是疯狂。方法名为pprint,它位于模块pprint中。为什么要调用名为pprint
的模块,该模块包含函数pprint
madness?怎么了?你能更新你的问题来解释你所说的“疯狂”是什么意思吗?eloff:+1用于解释为什么会有人想要这样做的用例。好的,我明白了。模块为Python对象提供了一种“名称空间”。但是仍然感觉有点奇怪-我想,我会习惯的。eloff:+1用于解释为什么会有人想要这样做的用例。好的,我明白了。模块为Python对象提供了一种“名称空间”。不过还是觉得有点奇怪——我想,我会习惯的。