在Python中使用字典(dict)键时,似乎有一些通用的方法:
some_dict['key_name'] # string constants everywhere
some_dict[KeyConstants.key_name] # where class KeyConstants: key_name: 'key_name'
some_dict[KEY_NAME] # with from some_module import KEY_NAME # a module level constant
'key_name'的缺点是你在整个代码中重复常量.这不是干的.更糟糕的是,如果您要发布您的API(从最广泛的意义上说),您将让API的消费者在任何地方重复这些常量,如果您想要将'key_name'更改为'better_key_name',那将是一个重大变化.
这是键入的语言DRY方法,常量合并在一个地方.它唯一的缺点是它丑陋,可读性稍差,而且更冗长.Pythonic原则主要禁止这样做.它允许您轻松更改表示键的常量,因为每个人都在对变量KeyConstants.key_name进行编码.它也适用于IDE进行重构.
PEP 8样式指南中建议使用模块级常量.ALL_CAPS_ARE_LOUD并且难以输入.这具有选项1和2的一些优点.
dict键常量有哪些其他最佳实践?以上哪种方法是首选的,何时?