Nag*_*S N 2 python autocomplete pycharm
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
但是有了这个,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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |