在初始化方法中将变量分配为None时,禁止PyCharm警告

问题描述 投票:0回答:1

我正在使用PyCharm进行python编码。在一个类中,我只有几个字段,这些字段的值在实例化该类时不会传递,但将在以后设置。因此,在__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。我的问题是无初始化正确吗?还是有更好的方法初始化和避免警告?

python autocomplete pycharm
1个回答
0
投票

无初始化是正确的,但是您将index_data声明为pandas.DataFrame,并且无非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
© www.soinside.com 2019 - 2024. All rights reserved.