A bundle of questions from a Python newbie

Gustavo Cordova gcordova at hebmex.com
Wed Feb 20 23:56:31 CET 2002


> 
> > 
> > 6. Is there a reason why 3.__abs__() does not work? After 
> all 3 is an
> > object (in the wider sense of the word). And it does work 
> if we assign
> > it to a variable, eg, 
> > 
> > var = 3
> > var.__abs__()
> > 
> > I know that code like the above (methods applied to number 
> literals) is
> > probably rare, but consistence is also a good thing.
> > 
> 
> because not everything is an object (yet)
> 

But, it's because the "3." is being interpreted
as a floating point number. Use a space:

>>> 3 . __abs__()
3
>>>


> > 10. I have a class that works like a list in the sense that supports the
> > method __getitem__ and its relatives. But I'm at a loss as to what I
> > have to do to support the slice notation.
> 
> >>> class Foo:
> ...   def __getslice__(*args):
> ...     print args
> ... 
> >>> f = Foo()
> >>> f[1:1]
> (<__main__.Foo instance at 0x80905e4>, 1, 1)
> 

and ditto for:

...   def __setslice__(*args): print args
...   def __delslice__(*args): print args


-gustavo




More information about the Python-list mailing list