MST
星途 面试题库

面试题:Python字典存储配置信息的优化与动态加载

现有一个大型项目,配置信息较多且部分配置可能会在运行时动态更新。请设计一个Python类,使用字典存储配置信息,该类要具备配置信息的初始化、动态更新、以及从文件(如JSON文件)加载和保存配置信息的功能。请详细说明类的设计思路,并给出关键代码实现。
18.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

设计思路

  1. 初始化:在类的构造函数中接收一个字典作为初始配置信息,用于初始化类内部存储配置信息的字典。
  2. 动态更新:设计一个方法,该方法接收一个字典,将其合并到类内部存储配置信息的字典中,实现配置信息的动态更新。
  3. 从文件加载:对于JSON文件,使用json模块,读取文件内容并将其解析为字典,再用于更新类内部的配置字典。
  4. 保存到文件:同样针对JSON文件,将类内部的配置字典转换为JSON格式的字符串,然后写入文件。

关键代码实现

import json


class ConfigManager:
    def __init__(self, initial_config={}):
        self.config = initial_config

    def update_config(self, new_config):
        self.config.update(new_config)

    def load_from_file(self, file_path):
        with open(file_path, 'r') as f:
            if file_path.endswith('.json'):
                loaded_config = json.load(f)
                self.config.update(loaded_config)

    def save_to_file(self, file_path):
        with open(file_path, 'w') as f:
            if file_path.endswith('.json'):
                json.dump(self.config, f, indent=4)