提升陪玩源码可读性,这两种方式很关键

提升陪玩源码可读性,这两种方式很关键

第一种,使用常量

直接将status所有可能的值用常量值代替

NO_FINISH = 0

LEARNING = 1

FINISH = 2

EXPRIED = 3




if status== NO_FINISH:
    pass



elif status==LEARNING:
    pass



if  finished:
    status =FINISH

 

这种也能提高陪玩源码的可读性,不过有个问题是,如果有很多这样的字段,不仅有学习状态,还有考试状态,如果每个状态都有好几个值,那么我们会定义很多个类似的常量值。

而实际上这4个值都应该是归为一类的,就是学习状态,那么我们能不能归类处理呢?

答案就是用 namedtuple

第二种、使用namedtuple

namedtuple 是一个具名元组,就是一个带有名字的元组,元组中的每个元素都对应有一个名字,是不是非常适合用在这种场景?

from collections import namedtuple


StudyStatus = namedtuple("StudyStatus", "no_start, learning, finish, end")
STUDY_STATUS = StudyStatus(0, 1, 2, 3)



if status== STUDY_STATUS.no_start:
    pass



elif status==STUDY_STATUS.learing:
    pass



if  finished:
    status =STUDY_STATUS.finish

 

这样我们只需要定义一个枚举常量对象,里面有4个值,分别代表4种不同的状态。namedtuple 可以认为是一个更轻量级的类,只有属性没有方法。

用namedtuple来重构,而且还不需要修改Model层面的字段属性,改动最小,却大大提高了陪玩源码的可读性。

以上就是提升陪玩源码可读性,这两种方式很关键, 更多内容欢迎关注之后的文章

 

posted @ 2024-06-29 09:11  云豹科技-苏凌霄  阅读(2)  评论(0编辑  收藏  举报