我们最近谈到了删除我们可能拥有的任何循环导入并重构我们的代码以不再使用函数内部的导入。
在许多地方推荐的方法之一(包括PEP-8风格指南here - 在进口下)是使用:
import a
a.foo()
代替:
from a import foo
foo()
我看到了一些例子,并确信这可能是一种更好的进口方式(即使我已经习惯了from
的进口方式)。
但我不明白为什么99%的python例子不使用这种导入方式。为什么我的pycharm不允许以这种方式自动导入(或者是?),如果这是正确的导入方式。
看看pycharm配置,我没有找到一种方法来自动完成import y.x
而不是from y import x
你不能使用import x
而不是from y import x
。如果import x.y
是子模块,则必须使用y
;如果import x; a = x.y
是变量,则必须使用y
(类,函数,常数...)
要使Pycharm自动完成根模块名称,您必须开始键入根模块名称而不是要使用的子元素。
例如,如果你想使用split
的os.path
函数,如果你开始输入split
然后点击CTRL-SPACE
,Pycharm会自动导入from os.path import split
。但是如果你开始输入os
,Pycharm将使用import os
自动完成,你可以用.path.split
结束你的声明