hex() 方法在与自定义对象一起使用时出错
hex() method giving error when used with custom object
我正在尝试使用魔术方法 __hex__
模拟自定义对象的内置 hex()
方法。我收到以下错误,我无法弄清楚为什么会这样所以。
class Point:
def __init__(self,x):
self.x= x
def __hex__(self):
return hex(self.x)
p1=Point(10)
print(hex(p1))
TypeError: 'point' object cannot be interpreted as an integer
但是当我使用 p1.__hex__()
而不是 hex(p1)
调用 hex
方法时,代码工作正常
>>>print(p1.__hex__())
0xa
你能解释一下为什么会这样吗?
你需要做的就是制作一个__index__
方法:
class Point:
def __init__(self, x):
self.x = x
def __index__(self):
return self.x
我正在尝试使用魔术方法 __hex__
模拟自定义对象的内置 hex()
方法。我收到以下错误,我无法弄清楚为什么会这样所以。
class Point:
def __init__(self,x):
self.x= x
def __hex__(self):
return hex(self.x)
p1=Point(10)
print(hex(p1))
TypeError: 'point' object cannot be interpreted as an integer
但是当我使用 p1.__hex__()
而不是 hex(p1)
调用 hex
方法时,代码工作正常
>>>print(p1.__hex__())
0xa
你能解释一下为什么会这样吗?
你需要做的就是制作一个__index__
方法:
class Point:
def __init__(self, x):
self.x = x
def __index__(self):
return self.x