我需要创建一个定制的ConfigParser,它添加了一些特性,其中最相关的是,包括一个默认值,用于None的未设置键。这似乎通过自定义dict类型得到支持,因此我写了如下内容:
class SyncDict(collections.UserDict):
...
def __getitem__(self, key):
if key in self.data:
return self.data[key]
return None
...
class SyncConfig(ConfigParser):
...
def __init__(self, filename):
super().__init__(allow_no_value=True, dict_type = SyncDict)
...
但是,这不起作用,因为它仍然在SectionProxy中引发KeyError。比如说,
>>> a = SyncConfig('aaa.cfg')
>>> a.add_section('b')
>>> b = a['b']
>>> b['c']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python38\lib\configparser.py", line 1254, in __getitem__
raise KeyError(key)
KeyError: 'c'
是我遗漏了什么,还是这真的不可能
PS:当要求一个区段时,使SyncDict返回一个空SyncDict值,而当要求一个选项时,使SyncDict返回一个空SyncDict值的方法可获得额外积分
目前没有回答
相关问题 更多 >
编程相关推荐