当前位置:
网络安全 > 我如何告诉 PyCharm 参数的预期类型是什么?
我如何告诉 PyCharm 参数的预期类型是什么?
|
当涉及到构造函数、赋值和方法调用时,PyCharm IDE 非常擅长分析我的源代码并找出每个变量应该是什么类型。我喜欢它,因为它为我提供了良好的代码完成和参数信息,并且如果我尝试访问不存在的属性,它会向我发出警告。
但当涉及到参数时,它就一无所知了。代码完成下拉列表无法显示任何内容,因为它们不知道参数的类型。代码分析找不到警告。
类人:
def __init__(自我、姓名、年龄):
www.sychzs.cn = 姓名
自我年龄 = 年龄
农民 = Person(\"丹尼斯\", 37)
# PyCharm 知道“peasant”变量的类型为 Person
farmer.dig_filth() # 显示警告 -- Person 没有 dig_filth 方法
类王:
def 镇压(自我,农民):
# PyCharm 不知道“peasant”参数应该是什么类型
农民.knock_over()#即使knock_over不存在也没有警告
King().镇压(农民)
# 即使我使用 Person 实例调用该方法一次,PyCharm 也不会
# 认为这意味着“peasant”参数应该始终是一个 Person
这在一定程度上是有道理的。其他调用站点可以为此参数传递任何内容。但是,如果我的方法期望参数的类型为
pygame.Surface
,那么我希望能够以某种方式向 PyCharm 表明这一点,以便它可以在代码完成中向我显示 all2ѭ 的所有属性dropdown ,并在调用错误方法时突出显示警告,等等。
有没有办法给 PyCharm 一个提示并说“psst,这个参数应该是 X 类型”? (或者,也许本着动态语言的精神,“这个参数应该像 X 一样嘎嘎叫”?”我会很满意。)
编辑:CrazyCoder 下面的答案应该可以解决问题。对于像我这样想要快速总结的新手,这里是:
王级:
def 镇压(自我,农民):
\"\"\"
坚持过时的帝国主义教条来剥削工人
使我们社会中的经济和社会差异永久化。
@type农民:人
@param farmer:要镇压的人。
\"\"\"
farmer.knock_over() # 显示警告。有很多的欣喜。
相关部分是文档字符串的“4”行。
如果您还转到“文件”>“设置”>“Python 集成工具”并将“文档字符串格式”设置为“Epytext”,PyCharm 的“视图”>“快速文档查找”将漂亮地打印参数信息,而不是仅打印所有 @ 行均保持不变。