[Python-Dev] str with base
Adam Olsen
rhamph at gmail.com
Tue Jan 17 18:04:35 CET 2006
On 1/17/06, "Martin v. Löwis" <martin at v.loewis.de> wrote:
> class Color:
> msg = {'en':['red', 'green', 'blue'], 'de':['rot','grün','blau']}
> def __str__(self, language='en'):
> return self.msg[language][self.value]
>
> red = Color(0)
>
> so you could say
>
> print str(red, 'de')
>
> I don't think I like this direction.
I agree that *args makes the code non-obvious. However, if **kwargs
is used instead:
def str(obj, **kwargs):
return obj.__str__(**kwargs)
class Color:
msg = {'en':['red', 'green', 'blue'], 'de':['rot','grün','blau']}
def __str__(self, language='en'):
return self.msg[language][self.value]
red = Color(0)
print str(red, language='de')
I find that quite readable.
--
Adam Olsen, aka Rhamphoryncus
More information about the Python-Dev
mailing list