[Edu-sig] An OOP view of the "number" concept

kirby urner kirby.urner at gmail.com
Sun Apr 22 17:23:36 CEST 2007


> Actually in Python, dot-notation breaks down with this case:
> 2.0.sin() ???
> I just noticed that. Perhaps one of the reasons smalltalk doesn't use
> the dot.
>
> Greetings
>
> Christian

The way I look at it, Python ints and floats "out of the box" have a more
limited repertoire than in Smalltalk apparently.

>>> dir(2.0)
['__abs__', '__add__', '__class__', '__coerce__', '__delattr__',
'__div__', '__divmod__', '__doc__', '__eq__', '__float__',
'__floordiv__', '__ge__', '__getattribute__', '__getformat__',
'__getnewargs__', '__gt__', '__hash__', '__init__', '__int__',
'__le__', '__long__', '__lt__', '__mod__', '__mul__', '__ne__',
'__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__',
'__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__',
'__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__',
'__rtruediv__', '__setattr__', '__setformat__', '__str__', '__sub__',
'__truediv__']

>>> 2.0 .__add__(3.0)  # normally 2.0 + 3.0
5.0

>>> 2.0 .__neg__()  # normally -2.0
-2.0

Once we import math, then we get these external functions, which don't
actually reach into the guts of the number type for an answer.  The
native types are knowledgeable, but not omniscient (likewise with
user-defined).

Kirby


More information about the Edu-sig mailing list