想象一下我们有这个类:
class Custom:
@classmethod
def get_choices(cls):
# use cls attributes to return a list
mapping = {"key": ... }
我想将
get_choices()
返回的值与key
关联起来。在占位符...
中应该放什么代码?
编辑:我希望保持问题的普适性(我觉得这个要求很常见,但我可能有偏见)。如评论所建议的,我会给出更多细节,因为我们似乎都担心“最简单的代码”:
我正在开发一个Django应用程序,我想将值的枚举分离出使用它们的
Model
s。对我而言,自然的解决方案是创建一个enumeration.py模块,在其中可以为每个枚举定义一个class
(该类至少具有一个类方法以生成值的集合)。这就是示例中的get_choices()
。现在,由于业务逻辑,我需要将这些选择映射到一个键上。这种映射与枚举逻辑上耦合在一起,将它们保持在同一个类中似乎是一个很好的结构(使客户端代码具有统一和明确的访问方式,并以类名为前缀)。
@classmethod
直到类定义完成后才能被实际调用。 - jonrsharpe