Wrapping float

Bengt Richter bokr at oz.net
Sat Sep 17 11:52:29 CEST 2005


On Sat, 17 Sep 2005 11:12:34 +0200, Sybren Stuvel <sybren at localhost.localdomain> wrote:

>Hi all,
>
>I'm trying to make a float-like class (preferably a subclass of
>'float') that wraps around. The background: I'm modeling a
>multi-dimensional space, and some of those dimensions are circular.
>
>Here is my code so far:
>
>class WrapFloat(float):
>    def __init__(self, value, wrap = None):
>        float.__init__(self, value)
>        self.wrap = wrap
>
>The problem is this:
>
>Python 2.4.1 (#2, Mar 30 2005, 21:51:10) 
>[GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2)] on linux2
>Type "help", "copyright", "credits" or "license" for more information.
>>>> from engine.geometry import WrapFloat
>>>> WrapFloat(45)
>45.0
>>>> WrapFloat(45, 3)
>Traceback (most recent call last):
>  File "<stdin>", line 1, in ?
>TypeError: float() takes at most 1 argument (2 given)
>
>So my question to you is: how can I change my code so I can pass two
>values to the WrapFloat constructor?
>
Float is an immutable, so you need to override __new__

Regards,
Bengt Richter



More information about the Python-list mailing list