我正在尝试OOP python,但我不确定__repr__
函数继承。因为父类函数如下所示:
def __repr__(self):
'''Returns representation of the object'''
return("{}({!r})".format("Class name", self._param))
我想知道是否最好使用一种通用的方法(也可以适用于儿童课程),如以下方法:
def __repr__(self):
'''Returns representation of the object'''
return("{}({!r})".format(self.__class__.__name__, self._param))
或者在每个类中重写函数是一个好的实践。
另外,请忽略编码部分,因为我要把它留下。
是的--这不仅仅是“好”,而且在几乎每个项目和类层次结构中都更实际。
实际上,这几乎是一个完美的“教科书示例”,说明何时使用类继承,只需重用超类中的代码。
那么^{} 在Pythons数据模型中有一个特殊的含义:
这意味着
__repr__
返回的字符串应该可以用于创建与之类似的另一个对象。因此__repr__
是经常需要重写的东西,不是因为__class__.__name__
,而是因为必须在表示中捕获“状态”。那么在为
__init__
添加参数时,绝对应该重写__repr__
:但是如果超类的
__repr__
仍然准确地描述了“子类,那么__repr__
没有点重载:然而,使用
self.__class__.__name__
而不是硬编码类名总是一个不错的选择,以防您或其他人对其进行子类化。相关问题 更多 >
编程相关推荐