【发布时间】:2014-04-18 18:41:37
【问题描述】:
是否可以将类型提示传播到覆盖方法?
说,我有以下课程:
class Student:
def study():
pass
class Option:
self.option_value
class BaseChoice:
def make_choice(self, student, options):
"""
:type student: Student
:type options: list[Option]
"""
class RationalChoice(BaseChoice):
def make_choice(self, student, options):
pass
当我在 RationalChoice.make_choice 内部时,pycharm 不建议 options 属性/方法自动完成,但它会为 student 选择正确的提示。显而易见的解决方法是只复制文档字符串,但我将拥有数十个不同的 BaseChoice 后代,所以这不切实际。
我使用的是 PyCharm 3.1.1,社区版和专业版都会受到影响。
它是在 python 本身中完全缺失的,还是在 PyCharm 中完全缺失的?
【问题讨论】:
-
我也在使用 PyCharm 3.1.1,我在 make_foo_from_bar 中获得了有关 Bar 方法的建议。如果您从一个新项目开始,是否会出现同样的问题?
-
没关系,您的示例似乎已关闭 - PyCharm 推断
bar是 Bar 类型,即使没有任何提示。 -
看来我已经过分简化了,我会在一分钟内更新问题。