我正在尝试改善我的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
答案 0 :(得分:-1)
出于以下原因,首选方法2。