我正在python中使用类结构来保持并轻松记住常量。 这是常量层次结构的示例:
class classification:
class baseline:
nb, logreg = "nb", "logreg"
class neural:
perceptron, mlp = "perceptron", "mlp"
这样,我可以检查if classifier == classification.neural.mlp: #...
之类的参数
我想要一个函数从给定级别返回所有可能的值。 如果我将类放在变量中,则可以这样实现:
> [v for (k,v) in dict(vars(classification.neural)).items()
if not k.startswith("__")]
['perceptron', 'mlp']
有没有一种方法可以通过通用的基类来实现? 即
class def_level:
def available():
class_var = "somehow_get_this"
[v for (k,v) in dict(vars(class_var)).items() if not k.startswith("__")]
class classification:
class baseline(def_level):
nb, logreg = "nb", "logreg"
class neural(def_level):
perceptron, mlp = "perceptron", "mlp"
,以便我可以从代码中调用classification.neural.available()
。
请记住,不执行任何实例化。
谢谢。