Python字典的正确命名约定

3

在让别人阅读我的代码后,我注意到他们对一个包含字典的变量名称感到困惑。这个变量的名称是根据字典中键的用途而非值的目的进行命名的,这使得他们感到困惑。这让我想知道以什么方式命名字典才是“正确”的,是根据键、值还是两者都要考虑?


1
在这种情况下,键和值分别代表什么? - August Karlstrom
3个回答

5
更合理的做法是以它包含的值命名字典。这就像你命名一组项目一样。这也类似于给返回值的函数取名,即你选择一个描述返回值而不是其参数的名称。当你看到表达式foo["bar"]时,你想知道它代表什么。
假设我们有一个单词和定义的字典。如果我们用键来命名字典,那么会是words["bar"],如果我们用值来命名,则是definitions["bar"]。我认为大多数人都会同意后者更有意义。
另一种策略是使用key_to_valuevalue_for_key(或它们的复数形式),对于上面的示例,分别为word_to_definitiondefinition_for_word。个人而言,我更喜欢简洁明了的definitions

2
我认为以下链接可能会对您有所帮助:Python 命名规范
简言之:没有固定的约定,只需给变量命名适当的名称,这样当其他人阅读您的代码时,他们就知道它的目的是什么。

1
也许可以共享字典以使问题更清晰一些?
我并不认为有一种“正确”的方法来做这件事(或者说这个想法并不适用于编程)。是的,Python有这样一个想法:“做一件事应该有一个——最好只有一个——明显的方法。”,但很多事情都不适用于这个想法。
我可能会倾向于使用键,但问题的复杂性在于字典可以包含非统一的数据,因此键可能不代表相同类型的内容。
你最好的选择是让你的代码易于阅读和理解——给事物命名描述它们是/包含什么,为它们所做的事情命名函数等。自说明代码的想法在这里非常有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接