> What are the internal methods that I need to define on any class so that > this code can work? > > c = C("three") > > i = int(c) # i is 3 > > I can handle the part of mapping "three" to 3, but I don't know what > internal method is called when int(c) happens. > > For string conversion, I just define the __str__ method. What's the > equivalent for int? For float, too, while I'm at it?
Is it too unkind to say it's semi-obvious? >>> class Impersonator(object): ... def __str__(self): return "I'm a string" ... def __int__(self): return 42 ... def __float__(self): return 3.14159 ... >>> c = Impersonator() >>> float(c) 3.1415899999999999 >>> int(c) 42 >>> str(c) "I'm a string" You say you can handle the conversion of "three" to 3, so I leave that implementation of __int__(self) to you... :) -tkc -- http://mail.python.org/mailman/listinfo/python-list