小编Kri*_*kar的帖子

如何输入最初为 None 但保证获得值的提示变量

我有一个类变量,如下所示:

class MyClass:
    def __init__(self):
        self.value: MyOtherClass | None = None
        self.initialize_value()

    def initialize_value(self):
        self.value = MyOtherClass()

    def use_value(self):
        return self.value.used
Run Code Online (Sandbox Code Playgroud)

self.valueMyOtherClass保证在使用之前被初始化为 的实例self.use_value();然而,它必须保持为None在构造函数中。这里的困境是如何正确地提示这种情况。

  • 如果我选择如上所示输入提示,我会得到一个error: Item "None" of "Optional[MyOtherClass]" has no attribute "used" [union-attr]
  • 如果我从构造函数中删除变量定义并将类型提示移至self.initialize_value(),我会得到一个Instance attribute value defined outside __init__从 Pylint 收到错误

解决这个问题的最佳方法是什么?多谢!

python type-hinting python-typing

7
推荐指数
1
解决办法
1181
查看次数

标签 统计

python ×1

python-typing ×1

type-hinting ×1