没有初始值的变量的类型注释

问题描述

我一直在阅读PEP484和526,但仍然想不出一种更好的方法来对没有初始值的变量进行类型注释。

说,您有一个类,并且在__init__中要声明一个变量,但是没有提供初始值,该值稍后在代码中发生分配。通常我通常会做的是:

from typing import Optional,List

class SomeClass:

    def __init__(self) -> None:
        self.some_value: Optional[int] = None
        self.other_var: Optional[List] = None

    def _some_method(self) -> None:
        self.some_value = 42

这可行,但是我觉得使用Optional会使__init__过于忙碌且难以阅读。相反,我能做的是:

from typing import List

class SomeClass:

    def __init__(self) -> None:
        self.some_value: int
        self.other_var: List

    def _some_method(self) -> None:
        self.some_value = 42

很显然,这会使变量保持未初始化状态,但是只要在引用之前正确地将它们分配给变量,一切就可以很好地进行,并且如果我在__init__中声明了很多类属性,也可以使其更易于阅读。 / p>

使用第二种方法时,将变量保留为未初始化状态是否会引起任何特定的问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...