verilog like class w/ bitslicing & int/long classtype

rdmurray at bitdance.com rdmurray at bitdance.com
Fri Jan 30 22:14:41 EST 2009


Quoth Stef Mientki <stef.mientki at gmail.com>:
> Marc 'BlackJack' Rintsch wrote:
> > On Fri, 30 Jan 2009 00:25:03 +0100, Stef Mientki wrote:
> >
> >   
> >> try this:
> >>
> >> class MyRegClass ( int ) :
> >>   def __init__ ( self, value ) :
> >>     self.Value = value
> >>   def __repr__ ( self ) :
> >>     line = hex ( self.Value )
> >>     line = line [:2] + line [2:].upper()
> >>     return line
> >>     
> >
> >     def __repr__(self):
> >         return '0x%X' % self.value
> >
> >   
> >>   __str__ = __repr__
> >>     
> >
> > This is unnecessary, the fallback of `__str__` is `__repr__` already.
> >
> >   
> well this is what my Python is doing:
> 
> without  _str__ = __repr__
>  >>print shadow_register
> 170
> 
> with  _str__ = __repr__
>  >>print shadow_register
> 0xAA


    >>> '__str__' in dir(170)
    True

That is, the superclass (int) has an __str__, so you have to override it.

--RDM




More information about the Python-list mailing list