1

代码是这样的:

        if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR":
            # no leading whitespace
            continue

我认为这意味着如果我编写这样的配置:

[memo]
rem ember_last = True

以开头的rem ember_last行将被忽略。为什么 ConfigParser 是这样设计的?

4

3 回答 3

1

它有点受编程语言 BASIC 的影响。REM表示备注并介绍评论。也comment应被视为评论。其他注释语句是#;

于 2012-11-12T10:18:52.837 回答
0

remin Batch 用于添加注释,即它是一个基本上什么都不做的命令。似乎这个决定被转移到配置文件中:

使您能够在批处理文件或配置文件中包含注释(备注)。

但是,rem实际的注释总是用空格分隔,因此remember忽略配置选项(只会rem ember)是没有意义的。您发布的代码证实了这一点,如下所示:

>>> line = 'remember_last = True'
>>> line.split(None, 1)[0].lower()
'remember_last'

所以,你的问题似乎是别的。

于 2012-11-12T10:14:59.887 回答
0

小实验:

In [190]: line = 'remember_last = True'

In [191]: line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR"
Out[191]: False

表明你的担忧是没有根据的。您是否需要解释 - 或者您可以自己弄清楚?

PS布尔表达式的第二部分绝对是多余的

于 2012-11-12T10:15:31.763 回答