6
假设我在Python 3中有一个基本的类,它代表了一些类似数字的数据类型。我想这样做,当我有一个实例,这个类的实例,我可以调用int(x),并让它调用我的转换函数返回整数部分。在Python中重载int()
我确定这很简单,但我似乎无法找到如何去做。
假设我在Python 3中有一个基本的类,它代表了一些类似数字的数据类型。我想这样做,当我有一个实例,这个类的实例,我可以调用int(x),并让它调用我的转换函数返回整数部分。在Python中重载int()
我确定这很简单,但我似乎无法找到如何去做。
您覆盖__int__
魔术方法按照下面的例子...
class Test:
def __init__(self, i):
self.i = i
def __int__(self):
return self.i * 2
t = Test(5)
print(int(t))
# 10
重写__int__()
方法。
我是在假设这是新的Python 3纠正? – 2012-07-20 08:52:01
@Joel:[一点都不]。(http://docs.python.org/reference/datamodel.html#object.__complex__) – 2012-07-20 08:53:28
你每天都会学到新的东西!虽然我很惊讶,但在阅读文档时忽略了这一点:P – 2012-07-20 15:50:13