28

我知道你可以在 Python 字典键中有空格,但这被认为是糟糕的编程吗?我在 PEP 中找不到任何关于此的内容。

编辑澄清:在我正在做的一个项目中,我正在做一些分析来自 Apache 的记分牌输出的东西mod_status(参见下面的示例输出。)我只是想找出最佳实践。我是否应该这样结束:

workers = {'W': 1,
           '_': 9,
           ...}

或这个:

workers = {'Sending Reply': 1,
           'Waiting for Connection': 9,
           ...}

示例mod_status输出:

_....___W____._.................................................
................................................................
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
4

4 回答 4

29

您可以使用 pylint 之类的工具来检查您的代码是否与 PEP8 兼容

所以我尝试了类似的东西:

M_D1 = {" foo bar ":1, " a bc":2, " ":3}

并且 pylint 给了我 10/10 的评分,所以我想它与键中使用的空格没有问题。

于 2012-11-20T14:20:31.587 回答
10

您可能会想到 Javascript,您可以在其中使用obj.foo和键通过对象的键来引用对象obj['foo']。在这种情况下,空格可能被认为是错误的形式,因为第一个版本不起作用:Python 首先没有该选项,因此不会出现问题。

于 2012-11-20T14:09:43.927 回答
4

如果您的键是字符串,它们可能包含任何内容。

他们应该代表什么?举个例子。

于 2012-11-20T14:08:35.243 回答
2

您的密钥可以是您想要的任何(字符串)。如果您将它们用于内部的东西 - 空间可能不是最好的主意。否则 - 好的。

于 2012-11-20T14:09:22.203 回答