所以我有下面这段类别的代码,有时我会通过添加一个新的类别来更新它,然后我必须手动地将这个类别添加到INITIAL_GOAL_CATEGORIES底部的列表中--如果每当我创建一个新的dict变量时,这个列表就会被自动更新的话,就会容易得多。有办法这样做吗?我导出INITIAL_GOAL_CATEGORIES变量并将其用于其他地方,因此如果我能够将变量名设置为所有其他变量的列表,那就太棒了。此文件将只包含类别的切块和底部的所有类别的列表。
categories.py
# Categories
ART = dict(name='Art', emoji='')
CULINARY = dict(name='Culinary', emoji='')
DIET = dict(name='Diet', emoji='')
DIY = dict(name='DIY', emoji='')
FINANCE = dict(name='Finance', emoji='')
FITNESS = dict(name='Fitness', emoji='')
GAMING = dict(name='Gaming', emoji='️')
MARTIAL_ARTS = dict(name='Martial Arts', emoji='')
MUSIC = dict(name='Music', emoji='')
RELATIONSHIP = dict(name='Relationship', emoji='')
SELF_CARE = dict(name='Self-Care', emoji='')
SELF_IMPROVEMENT = dict(name='Self-Improvement', emoji='✨')
STREAMING = dict(name='Streaming', emoji='⏺️')
TRAVEL = dict(name='Travel', emoji='✈️')
WEIGHT_TRAINING = dict(name='Weight Training', emoji='️')
INITIAL_GOAL_CATEGORIES = [ART, CULINARY, DIET, DIY, FITNESS, GAMING, MARTIAL_ARTS, MUSIC,
RELATIONSHIP, SELF_IMPROVEMENT, SELF_CARE, STREAMING, TRAVEL,
WEIGHT_TRAINING]发布于 2021-12-24 10:13:59
如果要创建一个列表,在添加此类全局值时更新其自身,请在这里说明您需要的内容:
# Categories
ART = dict(name='Art', emoji='')
CULINARY = dict(name='Culinary', emoji='')
DIET = dict(name='Diet', emoji='')
DIY = dict(name='DIY', emoji='')
FINANCE = dict(name='Finance', emoji='')
FITNESS = dict(name='Fitness', emoji='')
GAMING = dict(name='Gaming', emoji='️')
MARTIAL_ARTS = dict(name='Martial Arts', emoji='')
MUSIC = dict(name='Music', emoji='')
RELATIONSHIP = dict(name='Relationship', emoji='')
SELF_CARE = dict(name='Self-Care', emoji='')
SELF_IMPROVEMENT = dict(name='Self-Improvement', emoji='✨')
STREAMING = dict(name='Streaming', emoji='⏺️')
TRAVEL = dict(name='Travel', emoji='✈️')
WEIGHT_TRAINING = dict(name='Weight Training', emoji='️')
INITIAL_GOAL_CATEGORIES = [value for name, value in globals().items() if
name.isupper()]这将遍历全局()中的所有值,并检查该值的名称是否大写。如果它符合标准,它就是一个类别,我们将它添加到类别列表中。
但正如评论中所说:字典更好:
# Categories
INITIAL_GOAL_CATEGORIES = {
'Art': {'emoji': ''},
'Culinary': {'emoji': ''},
'Diet': {'emoji': ''},
'DIY': {'emoji': ''},
'Finance': {'emoji': ''},
'Fitness': {'emoji': ''},
'Gaming': {'emoji': '️'},
'Martial Arts': {'emoji': ''},
'Music': {'emoji': ''},
'Relationship': {'emoji': ''},
'Self-Care': {'emoji': ''},
'Self-Improvement': {'emoji': '✨'},
'Streaming': {'emoji': '⏺️'},
'Travel': {'emoji': '✈️'},
'Weight Training': {'emoji': '️'},
}https://stackoverflow.com/questions/70471733
复制相似问题