当属性变化时,为Python类编写__repr__方法的最佳方法是什么

时间:2016-09-09 18:44:56

标签: python class attributes repr

我创建了一个可以用不同方式初始化的类。根据它的初始化方式,它将具有一个属性(数据)或另外两个(输入,输出)和一些可选的属性。编写 repr 方法以更普遍地处理所有可能性的最简单方法是什么?

这是我第一次基于this advice的尝试:

def __repr__(self):

    # Compose a string representation of the object
    s = []

    try:
        if self.data is not None:
            s.append("data=%s" % self.data.__repr__())
    except AttributeError:
        s.append("inputs=%s" % self.inputs.__repr__())
        s.append("outputs=%s" % self.outputs.__repr__())

    try:
        if self.name is not None:
            s.append("name=%s" % self.name.__repr__())
    except AttributeError:
        pass

    return "MLPTrainingData(" + ", ".join(s) + ")"

我猜这是一个常见的问题,可能有更好的方法......

0 个答案:

没有答案