从函数返回 config.read()

Returning config.read() from function

我有一个 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'

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 并读取每个使用该配置的模块的配置文件。