从超类打印类的值

时间:2018-11-13 13:14:21

标签: python-3.x class constants

我正在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()。 请记住,不执行任何实例化。

谢谢。

0 个答案:

没有答案