我正在使用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
。我的问题是
无初始化正确吗?还是有更好的方法初始化和避免警告?
答案 0 :(得分:4)
无初始化是正确的(除非您在构造过程中知道它),但是您将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