Skip to content Skip to sidebar Skip to footer

How To Overload `float()` For A Custom Class In Python?

Summary How can I overload the built-in float for my class so when I call float() on an instance of it, my custom function gets called instead of the default built-in? My Class Hi,

Solution 1:

Define the __float__() special method on your class.

classMyClass(object):
    def__float__(self):
         return0.0float(MyClass())   # 0.0

Note that this method must return a float! The calculation self.num / self.denom, returns an int by default in versions of Python prior to 3.0 assuming both operands are integers. In this case you'd just make sure one of the operands is a float: float(self.num) / self.denom for example.

Post a Comment for "How To Overload `float()` For A Custom Class In Python?"