写枚举类,哪种对齐方式比较好?

297 天前
 XueXianqi

方式 1:

class Action(XIntegerChoices):
    """ 动作 枚举类 """

    CREATE = 0, "创建"
    DELETE = 1, "删除"
    UPDATE = 2, "修改"
    RETRIEVE = 3, "查看"
    LIKE = 4, "点赞"
    FOLLOW = 5, "关注"
    COLLECT = 6, "收藏"
    REGISTER = 7, "注册"
    LOGIN = 8, "登录"
    SEND = 9, "发送"
    CANCEL = 10, "取消"

方式 2:

class Action(XIntegerChoices):
    """ 动作 枚举类 """

    CREATE   = 0,  "创建"  # noqa
    DELETE   = 1,  "删除"  # noqa
    UPDATE   = 2,  "修改"  # noqa
    RETRIEVE = 3,  "查看"  # noqa
    LIKE     = 4,  "点赞"  # noqa
    FOLLOW   = 5,  "关注"  # noqa
    COLLECT  = 6,  "收藏"  # noqa
    REGISTER = 7,  "注册"  # noqa
    LOGIN    = 8,  "登录"  # noqa
    SEND     = 9,  "发送"  # noqa
    CANCEL   = 10, "取消"  # noqa
2051 次点击
所在节点    Python
31 条回复
chaoshui
297 天前
老老实实第一种
zqguo
297 天前
第二种不知道有啥好?强行工整?
vicalloy
297 天前
在 precommit 里设置代码提交前用 black 自动格式化。
没必要在这类无关紧要的地方折腾。
XueXianqi
297 天前
@chaoshui 好嘞
XueXianqi
297 天前
@zqguo

我是看一些第三方库的时候看到这种 “强行工整” 的枚举类写法

colorma.ansi.py 第 49 行


class AnsiFore(AnsiCodes):
BLACK = 30
RED = 31
GREEN = 32
YELLOW = 33
BLUE = 34
MAGENTA = 35
CYAN = 36
WHITE = 37
RESET = 39

(复制过来可能没对齐,可以忽略...)

然后就在想,有没有必要这样
XueXianqi
297 天前
@vicalloy 确实,这样有点吹毛求疵了
mainjzb
297 天前
🤣go 会强制对齐。希望其他语言能学习。
busier
297 天前
这样的操作,塞到数组里面不行么!!!
hello00001
297 天前
ctrl + alt + l
asmoker
297 天前
换 go ,go 是第二种 🤨
XueXianqi
297 天前
@hello00001 格式化代码,肯定是默认的第一种的...
XueXianqi
297 天前
@asmoker 对的,Go 是第二种,格式化就会直接变成第二种!
lysS
297 天前
肯定是第二种啊
0x0208v0
297 天前
有什么格式化方法能把代码格式化成第二种
Leviathann
297 天前
然后新加一个名字更长的整个文件 git 全改是吧
wuwukai007
297 天前
class Choices:
def __init__(self, value, name):
self._value = value
self._name = name

@property
def value(self):
return self._value

@property
def name(self):
return self._name

def __eq__(self, other):
return self._value == other

def __ne__(self, other):
return not self.__eq__(other)


class Action:
""" 动作 枚举类 """
CREATE = Choices(0, "创建")
DELETE = Choices(1, "删除")


# 使用
x = 0

# 判断值
if x == Action.CREATE:
print("匹配创建操作")

# 获取名称
print(Action.CREATE.name)
XueXianqi
296 天前
@v2exblog 目前我不知道,我是手动改的
XueXianqi
296 天前
@wuwukai007
谢谢~
我也自己封装过枚举基类,康康我的这个写得怎么样:
https://gitee.com/xuexianqi/x_utils/blob/master/enum_utils/base.py
XueXianqi
296 天前
@Leviathann 确实,方式 2 对 git 不太友好,牵一发而动全身
zqguo
296 天前
@XueXianqi #5 个人觉得没太必要,正常写就好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX