mark.sea...@gmail.com wrote:
...
It appears that if I make the class a subclass of long...
class bignumber(long):
def __init__(self, initval):
self.val = initval
Then if I make a new class of subclass of bignumber...
class myclass(bignumber):
def __init__(self, another_custom_class)
bignumber.__init__(self, 0)
do some stuff with another_custom_class
When I try to use this, I get an error sort of like this:
"TypeError: long() argument must be a string or a number, not
[whatever type another_custom_class is]"
Remember that long is an immutable class (so you need to fiddle __new__,
not __init__). So, do something a bit more like:
class BigNumber(long):
def __repr__(self):
return '%s(%s)' % (type(self).__name__, self)
class HugeNumber(BigNumber):
def __new__(class_, something):
return BigNumber.__new__(class_, something * 3)
then you can do something like:
print 'dog = %r = %016X' % (HugeNumber(123), HugeNumber(123))
Hope that helps.
--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list