开发者社区 问答 正文

使用其他属性名称的值创建枚举

如何创建枚举类,使其属性使用其他成员的值?像我的以下代码

from enum import Enum
class ProjectPath(Enum):
    home = '~/home'
    app = '~/home/app'
    prefix = '~/home/app/prefix'
    postfix = '~/home/app/postfix'

'''
try to do something like
from enum import Enum
class ProjectPath(Enum):
    home = '~/home'
    app = f'{self.home.value}/app'
    prefix = f'{self.app.value}/prefix'
    postfix = f'{self.app.value}/postfix'
'''

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 21:42:17 463 分享 版权
1 条回答
写回答
取消 提交回答
  • 不要尝试将内部变量称为枚举,而应像局部变量一样使用它们。

    from enum import Enum
    
    
    class ProjectPath(Enum):
        home = '~/home'
        app = f'{home}/app'
        prefix = f'{app}/prefix'
        postfix = f'{app}/postfix'
    
    
    print(\*f"{var=}" for var in ProjectPath], sep="\n")
    

    输出

    var=<ProjectPath.home: '~/home'>
    var=<ProjectPath.app: '~/home/app'>
    var=<ProjectPath.prefix: '~/home/app/prefix'>
    var=<ProjectPath.postfix: '~/home/app/postfix'>
    

    回答来源:stackoverflow

    2020-03-24 21:42:23
    赞同 展开评论
问答地址: