2014-02-08 3 views
1

У меня есть некоторые свойства, хранящиеся в TXT-файле, которые используются несколькими различными классами и функциями, хранящимися на нескольких модулях. Чтобы иметь доступ к свойствам из этих разных мест, у меня есть пустой модуль.Использование Python ConfigParser

Лучше ли установить сам модуль как объект ConfigParser или прочитать все параметры и установить их в атрибуты уровня модуля?

I.e. первый способ

blank_module = ConfigParser.ConfigParser() 
blank_module.read("file.txt") 

Then access with blank_module.get('section1', 'property1') 

против

local_var = ConfigParser.ConfigParser() 
local_var.read("file.txt") 

blank_module.property1 = local_var.get('section1', 'property1') 
blank_module.property2 = local_var.get('section1', 'property2') 
etc... 
then access with blank_module.property1 

Второй путь будет выглядеть более элегантно, когда приходят, чтобы получить доступ к параметрам, но я не уверен в том, как они будут отличаться с точки зрения производительности.

ответ

1

Я не думаю, что это производительность, о которой вы должны беспокоиться. Проблема заключается в простоте использования. Пользователям модулей, вероятно, будет удобнее обращаться к уже извлеченным из файла переменным вместо использования API ConfigParser.

Кроме того, вы можете сделать проверку ошибок в модуле, так что вы можете объяснить проблемы при чтении файла:

import ConfigParser 
local_var = ConfigParser.ConfigParser() 
try: 
    local_var.read("file.txt") 
except (ConfigParser.Error, OSError) as e: 
    # Error reading 'file.txt' or something like that 

try: 
    blank_module.property1 = local_var.get('section1', 'property1') 
except ConfigParser.Error as e: 
    # Handle the error 
try: 
    blank_module.property2 = local_var.get('section1', 'property2') 
except ConfigParser.Error as e: 
    # Handle the error 
etc... 
Смежные вопросы