Перегрузка int () в Python

скажем, у меня есть базовый класс в Python 3, который представляет некоторый числовой тип данных. Я хочу сделать это так, когда у меня есть экземпляр x этого класса, я могу вызвать int (x) и вызвать мою функцию преобразования, чтобы вернуть целочисленную часть.

Я уверен, что это просто, но я не могу понять, как это сделать.

2 ответов


вы переопределить __int__ magic метод в следующем примере...

class Test:
    def __init__(self, i):
        self.i = i
    def __int__(self):
        return self.i * 2

t = Test(5)
print( int(t) )
# 10

переопределить __int__() метод.