gpt4 book ai didi

用于命名字符串常量的 Python 结构

转载 作者:行者123 更新时间:2023-12-05 08:49:33 27 4
gpt4 key购买 nike

我经常使用字符串常量,例如:

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 装饰器的实现将是

def string_consts(cls):
for key, value in cls.__annotations__.items():
if value is str:
setattr(cls, key, key)
return cls

这使得

@string_consts
class DictKeys:
DICT_KEY1: str
DICT_KEY2: str

assert DictKeys.DICT_KEY1 == 'DICT_KEY1'

如您的示例工作 OOTB。

关于用于命名字符串常量的 Python 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63772823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com