我有以下(示例)代码:
class _1DCoord():
def __init__(self, i):
self.i = i
def pixels(self):
return self.i
def tiles(self):
return self.i/TILE_WIDTH
我想做的是:
>>> xcoord = _1DCoord(42)
>>> print xcoord
42
但相反,我看到了这一点:
>>> xcoord = _1DCoord(42)
>>> print xcoord
<_1DCoord instance at 0x1e78b00>
我尝试使用__repr__如下:
def __repr__(self):
return self.i
但__repr__只能返回一个字符串。 有没有办法做我想做的事情,或者我应该放弃并使用像素()?
答案 0 :(得分:11)
def __repr__(self):
return repr(self.i)
答案 1 :(得分:6)
我相信这就是你要找的东西:
class _1DCoord():
def __init__(self, i):
self.i = i
def __repr__(self):
return '_1DCoord(%i)' % self.i
def __str__(self):
return str(self.i)
>>> xcoord = _1DCoord(42)
>>> xcoord
_1DCoord(42)
>>> print xcoord
42
答案 2 :(得分:5)
但是
__repr__
只能返回一个字符串。
所以就这样做
def __repr__(self):
return str(self.i) # or repr(self.i)
或者,模仿通常的Python格式:
def __repr__(self):
return '_1DCoord(%i)' % self.i
答案 3 :(得分:1)
repr 方法允许您定义自己的类实例的字符串表示形式。它必须只接受 self 作为参数并返回一个字符串。理想情况下,repr 方法应该返回构建实例副本所需的信息。要使用 repr 方法,请执行以下操作:
def __repr__(self):
return f"{self.instance}"
这允许您返回属性的字符串表示,因为 repr 是 Python 类中的内置方法。