问题

我正在使用PyCharm进行python编码.在一个类中,我有几个字段,在实例化类时不会传递其值,但将以后设置.所以,在__init__()方法中,我将其值设置为None.另外,为了使用PyCharm自动代码完成,我正在指定这些字段的data-type.

 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.我的问题是
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 None初始化是否正确?或者有更好的方法来初始化和避免警告?

  最佳答案

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

您应该通过使用 Option 来增强类型声明以包含 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
 

  相同标签的其他问题

pythonautocompletepycharm