如何解决没有初始值的变量的类型注释
我一直在阅读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 举报,一经查实,本站将立刻删除。