[EMAIL PROTECTED] wrote:

> This is good... try this:
> 
> value = 'test'
> value
> 'test'
> type(value)
> <type 'str'>
> value = type(value) is type('') and Upper(value) or value
> value
> 'TEST'
> type(value)
> <class '__main__.Upper'>

Try again with 

value = ""

This makes Upper(value) a False value in a boolean context:

>>> class Upper(str):
...     pass
...
>>> Upper("")
''
>>> type(Upper(""))
<class '__main__.Upper'>
>>> type(Upper("") or "")
<type 'str'>

versus

>>> type(Upper("x") or "x")
<class '__main__.Upper'>

Peter

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to