Python类成员类型暗示

我正在使用PyCharm开发一些Python应用程序。我试图尽可能使用最先进的python,因此我正在利用新的python特性。我对类型提示有问题

让我们一起来看看我的DataAnalyzer类:

类数据分析器:
定义初始(自身、列车数据:pd.DataFrame、测试数据:pd.DataFrame)——>无:
self.train\u data=列车数据
self.test\u data=测试数据
def分析(自我):
通过

现在,PyCharm向我发送黄色灯泡,希望我向self.train\u dataself.test\u data添加类型注释。如果单击此消息,PyCharm会在我的课程开始处添加两行:

类数据分析器:
列车数据:pd.DataFrame
测试数据:pd.DataFrame
定义初始(自身、列车数据:pd.DataFrame、测试数据:pd.DataFrame)——>无:
self.train\u data=列车数据
self.test\u data=测试数据
def分析(自我):
通过

我想现在看起来更好了,但是通过这样编写这些变量,我使它们成为静态的

我考虑过这样注释类型:

类数据分析器:
定义初始(自身、列车数据:pd.DataFrame、测试数据:pd.DataFrame)——>无:
self.train\u数据:pd.DataFrame=train\u数据
self.test\u数据:pd.DataFrame=test\u数据
def分析(自我):
通过

这当然不清楚,但我不想让我的班级成员保持静止

我知道,通过在方法签名中注释类型,在我刚刚分配这些类型时再这样做一次,是一种过分的做法,但我要求的是一般规则。我应该像PyCharm建议的那样对这些类型进行注释,还是应该以内联方式进行注释

皮查姆的建议是正确的。事实上,我认为以下代码更好:

类数据分析器:
列车数据:pd.DataFrame
测试数据:pd.DataFrame
定义初始(自身、列车数据、测试数据):
self.train\u data=列车数据
self.test\u data=测试数据
def分析(自我):
通过

说明:

  • 注释成员不会使其成为静态的
  • 我们不应该再次在\uuuu init\uuu函数中注释参数
  • ->\uuuu init\uuuu之后的所有代码都不能省略。对于\uuuu init\uuuu,永远不要返回值

谢谢

发表评论