我正在用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
我想现在看起来更好了,但是通过这样写这些变量,我把它们变成了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建议的那样对这些类型进行注释,还是应该以内联方式进行注释?