我正在使用PyCharm
开发一些 Python 应用程序。我正在尝试尽可能使用最先进的 python,所以我正在使用新的 python 功能。我有一个问题type hinting
。
大家来看看我的DataAnalyzer
课:
class DataAnalyzer:
def __init__(self, train_data: pd.DataFrame, test_data: pd.DataFrame) -> None:
self.train_data = train_data
self.test_data = test_data
def analyze(self):
pass
现在 PyCharm 用黄色灯泡向我发送垃圾邮件,希望我在self.train_data
和self.test_data
. 如果我单击此消息来执行此操作,PyCharm 会在我的课程开头添加两行:
class DataAnalyzer:
train_data: pd.DataFrame
test_data: pd.DataFrame
def __init__(self, train_data: pd.DataFrame, test_data: pd.DataFrame) -> None:
self.train_data = train_data
self.test_data = test_data
def analyze(self):
pass
我想现在它看起来更好了,但是 AFAIK 通过像这样编写这些变量,我使它们成为static。
我想过像这样注释类型:
class DataAnalyzer:
def __init__(self, train_data: pd.DataFrame, test_data: pd.DataFrame) -> None:
self.train_data: pd.DataFrame = train_data
self.test_data: pd.DataFrame = test_data
def analyze(self):
pass
这绝对不清楚,但是当我不想时,我不会让我的班级成员成为静态的。
我知道,通过在方法签名中注释类型,在我分配这些类型时再执行一次,这是一种矫枉过正的做法,但我要求的是一般规则。我应该像 PyCharm 建议的那样注释那些类型,还是应该内联?