gpt4 book ai didi

python - 你如何在 python 中实现 'EXIT_CODES'?

转载 作者:行者123 更新时间:2023-11-28 22:06:25 25 4
gpt4 key购买 nike

最初我想做这样的事情:

#EXIT CODES
class ExitCode(object):
(USERHOME_INVALID, \
USERHOME_CANNOT_WRITE, \
USERHOME_CANNOT_READ, \
BASHRC_INVALID) = range(-1, -5, -1)

但是我意识到我必须确切地知道 EXIT_CODES 的总数,这样我才能将它传递给 range() 函数。假设我有 87(任意)EXIT_CODES...我不想数到 87(这并不难),但我正在寻找更优雅的解决方案。

有什么建议吗?

编辑:EXIT_CODE 是将传递给 sys.exit 的负整数。我更喜欢使用某种常量(例如 C 中的#defines 或枚举,或 Java 中的枚举)而不是写数字。

最佳答案

听起来您想要的是 C# 或其他类似语言中枚举的 Python 等价物。 How can I represent an 'Enum' in Python?提供了多种解决方案,但它们仍然需要您拥有的元素数量。编辑:How can I represent an 'Enum' in Python?看起来方式更好。

或者你可以尝试这样的事情(虽然可能不是最好的解决方案):

class _ExitCode:
_exit_codes=["EXIT_CODE","EXIT_CODE_TWO"]
def __getattr__(self, name):
if name in _ExitCode._exit_codes:
return -(_ExitCode._exit_codes.index(name)+1)
raise AttributeError("Exit code %s not found" % name)

ExitCode=_ExitCode()
print ExitCode.EXIT_CODE #-1

关于python - 你如何在 python 中实现 'EXIT_CODES'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731532/

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