从函数返回config.read()

时间:2016-07-05 12:39:10

标签: python configparser

我有一个config.py,它读入多个配置文件。

from ConfigParser import *

def zones_config():
  zones_config = ConfigParser()
  zones = zones_config.sections()
  zones_config.read('zones.ini'), zones

def settings_config():
  settings_config = ConfigParser()
  settings_config.read('settings.ini')

然后在我的database.py文件中:

from utils.config import settings_config

settings_config()

#mysqbdb config
ip = settings_config.get('mysqldb', 'ip')
username = settings_config.get('mysqldb', 'username')
password = settings_config.get('mysqldb', 'password')
database = settings_config.get('mysqldb', 'database')

但是我收到以下错误:

AttributeError: 'function' object has no attribute 'get'

1 个答案:

答案 0 :(得分:5)

settings_config是一个函数,.get()是ConfigParser对象的一个​​方法。这应该更清楚地解释一下:

def settings_config_function():
  settings_config_object = ConfigParser()
  settings_config_object.read('settings.ini')
  return settings_config_object

然后在database.py中:

from utils.config import settings_config_function

config_object = settings_config_function()

#mysqbdb config
ip = config_object.get('mysqldb', 'ip')
username = config_object.get('mysqldb', 'username')
password = config_object.get('mysqldb', 'password')
database = config_object.get('mysqldb', 'database')

编辑:

我还建议你打电话

settings_config_object = settings_config_function()
another_example_config_object = another_example_config_function()

一旦在config.py的底部,稍后只是

from utils.config import settings_config_object, another_example_config_object

在任何需要配置的文件中,这样您就不必实例化新的ConfigParser并读取每个使用该配置的模块的配置文件。