Sal*_*ley 5 python intellij-idea pycharm
我想使Foo成为一个不变的对象。当我“扩展” foo时,我想获得一个Foo的新实例。我希望输入如下提示:
class Foo(object):
def extend(self, item:str) -> Foo:
pass
Run Code Online (Sandbox Code Playgroud)
看起来不错,但是IntelliJ并不同意。我在第二行的Foo下面得到一个红色的下划线。错误消息是:未解析的引用'Foo'。
我有点明白了这是什么意思:在tyme上,我们正在解析第2行,但是我们还没有对象Foo,因此解释器不知道Foo是什么意思。
但奇怪的是,对于PyCharm(但无效的python),这个非常不令人满意的替代方法就足够了:
class Foo(object):
def extend(self, item:str) -> Foo_:
pass
Foo_ = Foo
Run Code Online (Sandbox Code Playgroud)
那么有没有有效的方法来做到这一点?我如何在类型提示注释中说特定方法返回新的self实例。类?
我在带有PyCharm插件的IntelliJ的最新版本上使用Python 3.5。
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |