字符串常量的最佳实践?

best practices for string constants?

据我所知,将大多数字符串提取为常量变量并避免在代码中间出现“魔术”字符串和数字通常被认为是好的。但是在 Python 世界中,我看到大多数时候使用字符串文字引发异常。我也看到在日志记录语句和其他类似情况下也是如此。

使用常量引发异常的示例:

ARGUMENT_LIST_TOO_SHORT = "The provided list is too short"

def whatever_function():
    raise ValueError(ARGUMENT_LIST_TOO_SHORT)

使用字符串文字引发异常的示例:

def whatever_function():
    raise ValueError("The provided list is too short")

在我看来,如果字符串只使用一次应该不会太糟糕,因为错误输入它的风险与首先在常量中输入它的风险相同。

那么,将错误描述字符串和日志字符串提取到常量中是一种好的做法吗?还是使用字符串文字更 Pythonic?

想想如果您编写的代码要在语言与固定文本不匹配的语言环境中执行,您需要做什么。据我所知,Python 没有任何 out-of-the-box 的“资源包”概念(与 Java 不同)。

这是一个见仁见智的问题,但我强烈反对说应该始终间接引用用户sees/interacts的文本。这种技术有助于 re-use 和语言的可移植性。

话虽如此,原始问题(当然还有这个答案)是基于意见的,因此在这个论坛上不受欢迎。