0

我在 Python 中绝对是新手,如果给出我很好奇:

ENROLLMENT_STATUS = (
                         (1, 'Enrolled'),
                         (2, 'Promoted'),
                         (3, 'Dropped'),
                         (4, 'Failed'),
                     )

我可以在不使用循环的情况下将整数 1..4 转换为其 str 对应项,例如:

for i in Enrollment.ENROLLMENT_STATUS:
    if i[0] == self.enrollment_status:
        status = i[1]
        break

感谢大家的帮助。

问候,乍得

4

2 回答 2

3

您可以使用该get_FOO_display方法,如下所示:

self.get_enrollment_status_display()

Enrolled如果状态为,它将打印1,依此类推。

于 2013-04-21T05:08:03.397 回答
3

您可以像这样将它们转换为字典

try:
    {k: v for k, v in ENROLLMENT_STATUS}[self.enrollment_status]
except ValueError:
    raise # or whatever

或像这样:

try:
    dict(ENROLLMENT_STATUS)[self.enrollment_status]
except ValueError:
    raise # or whatever
于 2013-04-21T05:16:19.073 回答