我正在使用PyCharm进行python编码。 PyCharm中的自动完成功能不如IntelliJ(Java)中的自动完成功能。考虑下面的代码
a = [1,2,3,4]
a.
在这种情况下,在我按下dot
之后,PyCharm会提供完整的自动完成选项。考虑以下情况
def func_a(a):
a.
在这里,我将func_a
作为参数传递给函数list
。但是,当我在dot
之后按a
时,PyCharm没有提供任何自动完成选项。我知道这是因为Python是动态类型化的语言,PyCharm不知道确定a
是什么类型。
但是有没有办法告诉PyCharm a
的类型,可能是在文档注释中或类似的东西?那么,PyCharm可以提供有效的自动完成选项吗?
答案 0 :(得分:1)
是的,Python 3.5引入了类型提示,Pycharm则利用了这种类型。
使用
def func_name(param: type) -> return_type:
喜欢
def func_a(a: list):
请注意,所有类型提示都是完全可选的,并且被解释器忽略。但是,如果将Pycharm当作习惯来使用,可能会帮助您检测类型错误。
答案 1 :(得分:1)
这可能不会回答您的问题,但这对刚开始将pycharm用于Django应用程序的人很有用。
如果您使用 Pure Python 启动了项目,则PyCharm不提供(它用红色强调了一些内置函数)自动完成选项。当您从文件菜单中单击新项目选项时,或者运行pycharm启动新项目时,会出现 Pure Python 选项。 纯Python 是新项目页面上的默认选定选项。您应该选择 Django (第二个选项),以在PyCharm中获得自动完成选项。
希望这对其他人有帮助。
答案 2 :(得分:0)
可以执行:
(使用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__)