在 PyCharm 中为 Python 键入提示 2.7(命名元组)
Type hints in PyCharm for Python 2.7 (named tuple)
不幸的是,args
上的自动完成在方法 foo()
中不起作用
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from collections import namedtuple
CreateVhostDoArgs = namedtuple('CreateVhostDoArgs',
['project_directory', 'branch', 'vhost_dir'])
def foo(args):
# type (CreateVhostDoArgs) -> None
print(args.project_directory)
if __name__ == '__main__':
foo(CreateVhostDoArgs('pd', 'branch', 'dir'))
如何更改我的类型提示,以便 PyCharm 为我提供 args.proje...
的自动完成功能?
尝试:
def foo(args):
"""
:type args: CreateVhostDoArgs
"""
在设置中有不同的文档字符串格式,可能对您有用。 Settings | Tools | Python Integrated Tools
我测试的默认值是 reStructredText
。其他人的行为可能会有所不同(或根本不同)
在 SO post 中,如果您需要更多详细信息,我会尝试在 PyCharm 中扩展 a-lot 类型提示。
我 a-lot 几年前就这样做了,当时 python 首次引入了类型提示 pycharm 很快推出了支持它的更新,但它并不支持PEP 大纲,我想我只发现 reStructredText
可以工作,但从那以后事情可能已经改变了。当我当时这样做的时候,我记得维护 class 名称更改并且没有正确传播到文档字符串真的很烦人。如果该类型实际上没有在文件中使用(未导入),它就不会给出错误或警告,我猜它只是认为你是一个愚蠢的用户,在里面写错了东西。然后你需要为评论中的某些东西做一个导入,这几天似乎 PyCharm 没有抱怨,但如果你有其他 linters,他们可能会。可能还有其他需要注意的陷阱,因此请谨慎行事。
它确实有效,但我不推荐给 python 3.5+ 中的任何人(当 python 引入类型提示时),原因在另一个 post 中详述。
我确实在本地专门用 namedtuple
进行了测试并且它有效。
不幸的是,args
上的自动完成在方法 foo()
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from collections import namedtuple
CreateVhostDoArgs = namedtuple('CreateVhostDoArgs',
['project_directory', 'branch', 'vhost_dir'])
def foo(args):
# type (CreateVhostDoArgs) -> None
print(args.project_directory)
if __name__ == '__main__':
foo(CreateVhostDoArgs('pd', 'branch', 'dir'))
如何更改我的类型提示,以便 PyCharm 为我提供 args.proje...
的自动完成功能?
尝试:
def foo(args):
"""
:type args: CreateVhostDoArgs
"""
在设置中有不同的文档字符串格式,可能对您有用。 Settings | Tools | Python Integrated Tools
我测试的默认值是 reStructredText
。其他人的行为可能会有所不同(或根本不同)
在
我 a-lot 几年前就这样做了,当时 python 首次引入了类型提示 pycharm 很快推出了支持它的更新,但它并不支持PEP 大纲,我想我只发现 reStructredText
可以工作,但从那以后事情可能已经改变了。当我当时这样做的时候,我记得维护 class 名称更改并且没有正确传播到文档字符串真的很烦人。如果该类型实际上没有在文件中使用(未导入),它就不会给出错误或警告,我猜它只是认为你是一个愚蠢的用户,在里面写错了东西。然后你需要为评论中的某些东西做一个导入,这几天似乎 PyCharm 没有抱怨,但如果你有其他 linters,他们可能会。可能还有其他需要注意的陷阱,因此请谨慎行事。
它确实有效,但我不推荐给 python 3.5+ 中的任何人(当 python 引入类型提示时),原因在另一个 post 中详述。
我确实在本地专门用 namedtuple
进行了测试并且它有效。