我定义了这个命名的元组
_validation_message = namedtuple("_validation_message", "validation msg")
并使用它作为常规元组中的值,如下所示:
_messages = (
_validation_message("mandatory", "mandatory field"),
_validation_message("phone", "please enter a valid phone number),
_validation_message("name", "please enter both first and last name separated by space")
)
[现在,我正在尝试通过验证名称从_messages获取特定的_validation_message,例如,我希望_messages [“ mandatory”]返回“强制字段”。有什么办法可以实现?
_ messages [“ mandatory”]将返回“ mandatory field”
要实现这一点,您必须首先意识到messages
是一个元组,因此您必须访问其中存在的_validation_message
对象,然后过滤掉所需的对象。
此外,您已经声明要获取msg
对象的_validation_message
属性,对于该属性,validation
等于'mandatory'
。
这可以通过在检查条件时遍历元组来完成:
>>> for vm in _messages:
... if vm.validation == 'mandatory':
... print(vm.msg)
...
mandatory field
我最终使用以下结构:
_validation_type = namedtuple("_validation_type", "mandatory phone name")
_messages = _validation_type(
mandatory="mandatory field",
phone="please enter a valid phone number",
name="please enter both first and last name separated by space"
)
并通过以下方式访问它:
_messages.mandatory