Я пытаюсь улучшить свой код на Python и начал использовать классы для группировки связанных методов и переменных.
Какова лучшая практика при использовании функции, которая может получить доступ к переменным, которые инициализированы в классе? Должен ли я просто получить доступ к переменной в функции? Или явно передать переменную, чтобы было ясно, что я на нее полагаюсь?
Я создал два примера, чтобы показать, что я имею в виду под этим вопросом. Какой метод предпочтительнее?
# method 1
class UploadForm(object):
def __init__(self, form_data):
self.file_name = form_data.get('file_name')
def validate(self):
agency_name = self.extract_agency_name(self.file_name)
@staticmethod
def extract_agency_name(file_name):
pattern = re.search('^[CFS]Y\d{4} (.+?)[.](?:xls|csv)$', file_name, re.I)
if pattern:
agency_name = pattern.group(1)
return agency_name
# method 2
class UploadForm(object):
def __init__(self, form_data):
self.file_name = form_data.get('file_name')
def validate(self):
agency_name = self.extract_agency_name()
def extract_agency_name(self):
pattern = re.search('^[CFS]Y\d{4} (.+?)[.](?:xls|csv)$', self.file_name, re.I)
if pattern:
agency_name = pattern.group(1)
return agency_name