我有一个 Category 类,每个类别都有不同的名称,类别的名称可以是未知的,好的和坏的,所有类别共享相同的行为,所以我不想为每种类别创建子类,问题当我试图以这种方式创建不同的类别时出现:
Category.GOOD
此语句应返回一个类别对象,其名称设置为“好”,因此我尝试以下操作:
class Category(object):
def __init__(self, name):
self.name = name
@property
def GOOD(self):
category = Category(name='good')
return category
@property
def BAD(self):
category = Category(name='bad')
return category
然后我创建并使用具有以下输出的类别:
c = Category.GOOD
c.name
AttributeError: 'property' object has no attribute 'name'
意识到这不起作用,我尝试了类似 java 的方法:
class Category(object):
GOOD = Category(name='good')
BAD = Category(name='bad')
def __init__(self, name):
self.name = name
我在这里得到的是一个未定义的名称“类别”错误,所以我的问题是是否有一种 Python 的方式来创建这样的类别对象。