将类类型作为参数传递给类构造函数

假设我有一个Directory接受其他子目录列表作为参数的类:

class File:
    pass

class Directory:
    def __init__(self, directories: List[Directory], files: List[File]):
                                         ^^^^^^^^^
        self.directories = directories
        self.files = files

我收到一条错误消息"Directory" is not defined如果我不传递类型,这段代码就可以正常工作,但是你如何在 python 中处理这个用例?

黑豆

您需要的是递归类型定义。这可以在 Python 中通过提供类型名称的字符串而不是类型本身来实现。

class File:
   pass

class Directory:
   def __init__(self, directories: List['Directory'], files: List[File]):
      self.directories = directories
      self.files = files

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章