键入提示返回其自己的类实例的方法的正确方法是什么?

时间:2016-05-22 17:51:49

标签: python intellij-idea pycharm

我想让Foo成为一个不可变对象。当我延伸' foo我想得到一个新的Foo实例。我希望输入类似的提示:

class Foo(object):
    def extend(self, item:str) -> Foo:
        pass

这看起来不对,但IntelliJ并不同意。我在第二行的Foo下面得到一个红色下划线。错误消息为:未解决的参考' Foo'

我有点理解它的说法:我们正在解析第2行,我们还没有Foo这个对象,所以翻译不知道Foo是什么手段。

但奇怪的是,这个非常不满意的替代方案对PyCharm来说已经足够了(但无效的python):

class Foo(object):
    def extend(self, item:str) -> Foo_:
        pass

Foo_ = Foo

那么有一种有效的方法吗?如何在类型提示注释中说明特定方法返回一个新的self实例。 class

我在最新版本的IntelliJ和PyCharm插件上使用Python 3.5。

0 个答案:

没有答案