我们最近讨论了删除可能具有的所有循环导入并重构代码以不再使用函数内部的导入。
在许多地方(包括PEP-8样式指南here-导入时)推荐的一种方法是使用:
import a
a.foo()
代替:
from a import foo
foo()
我看到了一些示例,并确信这可能是进行导入的更好方法(即使im习惯了from
的导入方式)。
但是我不明白为什么99%的python示例不使用这种导入方式。如果这是正确的导入方式,为什么我的pycharm不允许以这种方式自动导入(还是这样?)。
在查看pycharm配置时,我没有找到用import y.x
而不是from y import x
来自动完成的方法
答案 0 :(得分:1)
您不能使用import x
代替from y import x
。如果import x.y
是子模块,则必须使用y
;如果import x; a = x.y
是变量(类,函数,常量...),则必须使用y
。
要使Pycharm自动使用根模块名称完成,您必须开始键入根模块名称,而不是要使用的子元素。
例如,如果您想使用split
的{{1}}函数,如果您开始输入os.path
然后按两次split
,Pycharm将自动导入{{1 }}。但是,如果您开始输入CTRL-SPACE
,Pycharm将使用from os.path import split
自动完成,您可以使用os