我正在使用 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
。我的问题是
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
关于python - 在 init 方法中将变量分配为 None 时抑制 PyCharm 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58580357/