Python PyCharm中基于类型的自动补全

Python PyCharm中基于类型的自动补全,python,autocomplete,pycharm,Python,Autocomplete,Pycharm,我正在使用PyCharm进行python编码。PyCharm中的自动完成不如IntelliJ(Java)中的自动完成。考虑下面的代码 a = [1,2,3,4] a. 在这种情况下,在我按下点之后,PyCharm提供了全套自动完成选项。考虑下面的案例 def func_a(a): a. 这里,我将一个列表作为参数传递给函数func\u a。但是当我在a之后按dot时,PyCharm没有提供任何自动完成选项。我知道这是因为Python是动态类型语言,PyCharm不知道a是什么类型 但

我正在使用PyCharm进行python编码。PyCharm中的自动完成不如IntelliJ(Java)中的自动完成。考虑下面的代码

a = [1,2,3,4]
a.
在这种情况下,在我按下
点之后,PyCharm提供了全套自动完成选项。考虑下面的案例

def func_a(a):
    a.
这里,我将一个
列表作为参数传递给函数
func\u a
。但是当我在
a
之后按
dot
时,PyCharm没有提供任何自动完成选项。我知道这是因为Python是动态类型语言,PyCharm不知道
a
是什么类型


但是有没有办法告诉PyCharm,
a
的类型可能在文档注释或类似的内容中?那么,PyCharm可以提供有效的自动完成选项吗?

是的,Python3.5引入了类型暗示,PyCharm利用了这一点

使用

请注意,所有类型提示都是完全可选的,并且被解释器忽略。但是,如果您习惯使用Pycharm,它可能会帮助您检测类型错误。

可以做到
(使用
列表的示例
):

或手动检查:

def func_a(a):
    if isinstance(a,list):
        do_this
    else:

        raise TypeError("expected type of 'list' but got type of '%s'"%type(a).__name__)        

这可能无法回答您的问题,但对于那些刚刚开始使用pycharm for Django应用程序的人来说,这会很有帮助

如果您使用纯Python启动项目,PyCharm不会为Django提供(在某些内置函数的下方加上红色下划线)自动完成选项纯Python选项出现在您从文件菜单单击新建项目选项或运行pycharm启动新项目时Pure-Python是新项目页面上的默认选择选项。您应该选择Django(第二个选项)以获得PyCharm中的自动完成选项


希望这对其他人有帮助

就像PyCharm中的符咒一样工作:p.谢谢!是否有方法指定参数可以是列表或元组?请检查。再次注意,类型提示并没有被强制执行。尽管如此,第二部分并没有回答我的问题。我的问题不是执行类型检查。我所需要的就是根据传递给函数的参数类型在PyCharm中自动完成
def func_a(a: list):
def func_a(a:list):
    do_this()
def func_a(a):
    if isinstance(a,list):
        do_this
    else:

        raise TypeError("expected type of 'list' but got type of '%s'"%type(a).__name__)