猿问

键入提示,指出这是子类

如何通过类型提示指示一个类是另一个类的子类?例如。


class Foo:

  def foo(self, x):

    pass


def dynamic() -> Type[Foo]:

  class SubFoo(Foo):

    pass


  return SubFoo


class SubSubFoo(dynamic()):

  def f|  # no suggestions from my editor

我的编辑器(PyCharm)在上述情况下没有提供建议,表明静态分析无法识别出是 的子类型。如何使用类型提示来指示这一点?SubSubFooFoo


跃然一笑
浏览 138回答 1
1回答

明月笑刀无情

我有一个来自JetBrains的答案,表明这是PyCharm的限制,而不是类型提示的限制或误用:在这种特殊情况下,它是IDE限制,我们不查看dynamic()函数的内部,因为它可能要复杂得多。-安德烈·雷斯勒作为修复,我使用了一个成语,每当我子类时,我也会在那之后进行子类,这导致在不改变程序逻辑的情况下出现所需的建议(即使它看起来有点奇怪)。dynamic()Foo
随时随地看视频慕课网APP

相关分类

Python
我要回答