我有几个关于configobj的问题,我很乐意尝试
用于该项目。

第一个问题是,我如何列出很长的东西?
假设我已经在spec文件中声明了。

val =字符串列表

现在我想做
    val = 1,
      二,
      三

但这是不允许的,而且

val = one, \
  two, \
  three


不起作用,是否有办法避免将所有内容写在一行上?

第二个问题是,如何避免声明两次默认值
值?

例如,假设我有此规格:

skip_pesky_pyc_paths = string_list


我想当然了(前面的伪代码)

conf = ConfigObj(spec=myspec)
conf['skip_pesky_pyc_paths'] == []


但事实并非如此,如果未在conf文件中声明它,
找不到钥匙?
是否有一个神奇的选择,可以让他们在没有钥匙的时候创建钥匙
从规范中声明?

一种替代方法是改用YAML,但要进行验证
据我所知,ConfigObj看起来更好。

最佳答案

关于问题的第二部分,我不确定我是否正确理解,但是如果您要询问如何为配置文件中不存在的值设置默认值,则可以

skip_pesky_pyc_paths = string_list(default=list())


在验证文件中。然后,如果配置文件中不存在skip_pesky_pyc_paths,它将返回[]

还有,你说


  现在我想做val =一,二,三


但实际上,这很好。我刚刚测试过。确实,将列表的各个值放在单独的行上是行不通的。

关于python - ConfigObj长列表和默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9083988/

10-12 21:31