Я использую 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 предлагает мне, или я должен сделать это в строке?