gpt4 book ai didi

python - 如何使用存储在单独模块中的错误代码

转载 作者:行者123 更新时间:2023-11-30 21:51:34 25 4
gpt4 key购买 nike

errors.py 模块中,我定义了几个错误,例如:

INCORRECT_USERNAME = -2417
INCORRECT_PASSWORD = -2426
PASSWORD_EXPIRED = -2430
ACCOUNT_DISABLED = -2431

现在,我将此模块导入到另一个 Python 脚本中并检查错误代码是否匹配:

import errors 


def get_error_name():
returned_code = some_function(some_argument)

if returned_code == errors.INCORRECT_USERNAME:
return "INCORRECT_USERNAME"
elif returned_code == errors.INCORRECT_PASSWORD:
return "INCORRECT_PASSWORD"
elif returned_code == errors.PASSWORD_EXPIRED:
return "PASSWORD_EXPIRED"
elif returned_code == errors.ACCOUNT_DISABLED:
return "ACCOUNT_DISABLED"

生成的代码似乎过于冗余或过于冗长。有没有更简洁的方法来返回错误消息的字符串值?

最佳答案

这似乎是 Enum 的一个很好的用例:

# errors.py
import enum

class Error(enum.IntEnum):
INCORRECT_USERNAME = -2417
INCORRECT_PASSWORD = -2426
PASSWORD_EXPIRED = -2430
ACCOUNT_DISABLED = -2431



# another_script.py
import errors

def get_error_name():
returned_code = some_function(some_argument)
return errors.Error(returned_code).name

或者,如果您想返回的不仅仅是错误名称,您可以考虑使用 namedtuple :

# errors.py
import collections

Error = collections.namedtuple('Error', ['name', 'msg'])
all_errors = {
-2417: Error('INCORRECT_USERNAME', 'The provided username was incorrect'),
-2426: Error('INCORRECT_PASSWORD', 'The provided password was incorrect'),
-2430: Error('PASSWORD_EXPIRED', 'Your password has expired'),
-2431: Error('ACCOUNT_DISABLED', 'Your account is disabled'),
}



# another_script.py
import errors

def get_error_name():
returned_code = some_function(some_argument)
return errors.all_errors[returned_code].name

def get_error_msg():
returned_code = some_function(some_argument)
return errors.all_errors[returned_code].msg

关于python - 如何使用存储在单独模块中的错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60083233/

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