Python's annoyance.

caroundw5h caroundw5h at yahoo.com
Wed Nov 24 13:47:11 EST 2004


[code]
PEP 292 adds a Template class to the string module that uses "$" to
indicate a substitution. Template is a subclass of the built-in
Unicode type, so the result is always a Unicode string:

>>> import string
>>> t = string.Template('$page: $title')
>>> t.substitute({'page':2, 'title': 'The Best of Times'})
u'2: The Best of Times'

If a key is missing from the dictionary, the substitute method will
raise a KeyError. There's also a safe_substitute method that ignores
missing keys:

>>> t = string.SafeTemplate('$page: $title')
>>> t.safe_substitute({'page':3})
u'3: $title'
[/code]


[code]As a slightly more realistic example, the following decorator
checks that the supplied argument is an integer:

def require_int (func):
    def wrapper (arg):
        assert isinstance(arg, int)
        return func(arg)

    return wrapper

@require_int
def p1 (arg):
    print arg

@require_int
def p2(arg):
    print arg*2
[/code]



Serioulsy, one of python's main selling points is its elegant syntax,
non perl like, non C like. If it can't live up to it. I guess i might
as well use perl or ruby or server side javascript.

how annoying.



More information about the Python-list mailing list