1 回答
TA贡献1835条经验 获得超7个赞
我会添加一个类方法来将配置文件数据解析为一个新对象。
class User:
def __init__(self, name, sex, age, location, debt):
self.__name=name
self.__sex=sex
self.__age=age
self.__location=location
self.__income=income
self.__debt=debt
@classmethod
def from_config(cls, name, config):
return cls(name, config['sex'], config['age'], config['location'], config['debt']
def foo(self):
do a thing
def bar(self):
do a different thing ...
现在,如何实际创建 的实例的细节User在类本身中被抽象掉了;遍历配置的代码只需要将相关数据传递给类方法即可。
from configparser import ConfigParser
config=ConfigParser()
config.read('employees.ini')
users = [User.from_config(section, config[section]) for section in config.sections()]
由于你的类使用配置文件的键名作为参数名,你可以直接解压字典并使用__init__而不是定义类方法。
from configparser import ConfigParser
config=ConfigParser()
config.read('employees.ini')
users = [User(section, **config[section]) for section in config.sections()]
添加回答
举报