我经常使用字符串常量,例如:
DICT_KEY1 = 'DICT_KEY1'
DICT_KEY2 = 'DICT_KEY2'
...
很多时候,我并不介意实际的文字是什么,只要它们是人类读者可以理解的唯一文字。 这样,在整个项目中重构和更改文字就更容易了
所以我的问题是,有没有一种标准的方法使这些字符串常量声明更简单?我不想重复写文字'DICT_KEYn'
例如,类似这样的方法可能会奏效:
@string_consts
class DictKeys:
DICT_KEY1: str
DICT_KEY2: str
...
assert DictKeys.DICT_KEY1 == 'DICT_KEY1'
如果有帮助,那么
string_consts
装饰器的实现将是这使得
如您的示例所示,工作OOTB
在全球层面上,您可以这样做:
在类级别,
setattr
可以以相同的方式使用:如果您的密钥不是问题所建议的数字列表,您仍然可以执行以下操作:
在我看来,这比使用decorator解决方案更容易理解,而且可以完成这项工作
相关问题 更多 >
编程相关推荐