不幸的是,自動完成在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...?
uj5u.com熱心網友回復:
嘗試:
def foo(args):
"""
:type args: CreateVhostDoArgs
"""
在設定中有不同的檔案字串格式可能對您有用。Settings | Tools | Python Integrated Tools我測驗的默認值是reStructredText. 其他人的行為可能略有不同(或根本沒有)
在這篇SO 帖子中,如果您需要更多詳細資訊,我會嘗試在 PyCharm 中擴展大量型別提示。
幾年前,當 python 首次引入型別提示時,我做了很多,pycharm 很快推出了支持它的更新,但它不支持 PEP 概述的所有內容,我想我只發現reStructredText作業,但從那以后情況可能會發生變化。當我當時這樣做時,我記得維護類名的更改以及沒有正確傳播到檔案字串真的很煩人。如果該型別實際上沒有在檔案中使用(未匯入),它不會給出錯誤或警告,我猜它只是認為你是一個愚蠢的用戶,在那里錯誤地寫了東西。然后,您需要僅針對評論中的某些內容進行匯入,這些天 PyCharm 似乎并沒有對此抱怨,但如果您有其他的 linters,他們可能會這樣做。可能還有其他陷阱需要提防,因此請謹慎行事。
它確實有效,但我不向 python 3.5 中的任何人推薦它(當 python 引入型別提示時),原因在另一篇文章中詳述。
我確實在本地進行了專門測驗,namedtuple并且效果很好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461233.html
