在 init 方法中将变量分配为 None 时抑制 PyCharm 警告

Suppress PyCharm warning when a variable is assigned as None in init method

我正在使用 PyCharm 进行 python 编码。在class中,我有几个字段,在实例化class时不会传递其值,但会在稍后设置。因此,在 __init__() 方法中,我将它们的值设置为 None。此外,为了利用 PyCharm 自动代码完成,我指定了这些字段的数据类型。

class SelectFrame():
    index_data: pandas.DataFrame
    index_filepath: Path

    def __init__(self):
        self.index_data = None
        self.index_filepath = None

但是,PyCharm 发出警告 Expected Type 'DataFrame', got 'None' instead。我怎样才能删除这个警告?

注意:我不想完全禁止 TypeChecker 警告,也不想在我使用此类代码的任何地方都添加注释 # noinspection PyTypeChecker。我的问题是
None初始化是否正确?或者有没有更好的方法来初始化和避免警告?

None 初始化是正确的(除非你在构造过程中知道它)但是你将 index_data 声明为 pandas.DataFrame 而 None 不是pandas.DataFrame 所以它会警告你。

您应该通过使用 Optional.

来增强类型声明以包括 None
from typing import Optional

class SelectFrame():
    index_data: Optional[pandas.DataFrame]
    index_filepath: Optional[Path]

    def __init__(self):
        self.index_data = None
        self.index_filepath = None