我对 Python 相当陌生,并且对以下课程有疑问:
class Configuration:
def __init__(self):
parser = SafeConfigParser()
try:
if parser.read(CONFIG_FILE) is None:
raise IOError('Cannot open configuration file')
except IOError, error:
sys.exit(error)
else:
self.__parser = parser
self.fileName = CONFIG_FILE
def get_section(self):
p = self.__parser
result = []
for s in p.sections():
result.append('{0}'.format(s))
return result
def get_info(self, config_section):
p = self.__parser
self.section = config_section
self.url = p.get(config_section, 'url')
self.imgexpr = p.get(config_section, 'imgexpr')
self.imgattr1 = p.get(config_section, 'imgattr1')
self.imgattr2 = p.get(config_section, 'imgattr2')
self.destination = p.get(config_section, 'destination')
self.createzip = p.get(config_section, 'createzip')
self.pagesnumber = p.get(config_section, 'pagesnumber')
在此示例中,可以在另一个函数中添加更多实例变量get_info
,还是在构造函数中定义所有实例变量是最佳实践?如果我到处定义新的实例变量,难道不会导致意大利面条代码吗?
编辑:我将此代码与一个简单的图像刮板一起使用。通过get_section
我返回配置文件中的所有部分,然后遍历它们以访问我从中抓取图像的每个站点。对于每次迭代,我都会调用以get_section
获取配置文件中每个部分的配置设置。如果有人能想出另一种方法,那就太好了!谢谢!