On 4/1/07, Georg Brandl <[EMAIL PROTECTED]> wrote:
[...]

Example
=======

This is the standard ``os.path.normpath`` function, converted to type
declaration
syntax::

     def normpathƛ(path✎)✎:
         """Normalize path, eliminating double slashes, etc."""
         if path✎ == '':
             return '.'
         initial_slashes✓ = path✎.startswithƛ('/')✓
         # POSIX allows one or two initial slashes, but treats three or
more
         # as single slash.
         if (initial_slashes✓ and
             path✎.startswithƛ('//')✓ and not path✎.startswithƛ('///')✓)✓:
             initial_slashesℕ = 2
         comps♨ = path✎.splitƛ('/')♨
         new_comps♨ = []♨
         for comp✎ in comps♨:
             if comp✎ in ('', '.')⒯:
                 continue
             if (comp✎ != '..' or (not initial_slashesℕ and not
new_comps♨)✓ or
                  (new_comps♨ and new_comps♨[-1]✎ == '..')✓)✓:
                 new_comps♨.appendƛ(comp✎)
             elif new_comps♨:
                 new_comps♨.popƛ()✎
         comps♨ = new_comps♨
         path✎ = '/'.join(comps♨)✎
         if initial_slashesℕ:
             path✎ = '/'*initial_slashesℕ + path✎
         return path✎ or '.'

As you can clearly see, the type declarations add expressiveness, while at
the
same time they make the code look much more professional.


 Is this supposed to be a joke?  Please tell me this isn't a real PEP.
While I'm all for allowing unicode identifiers in Python, postfix type
annotations make Python look like Perl.  And how can you claim this code is
more readable?  It certainly is _less_ readable, not more.

 I agree that Python should support type annotations, but they should be
optional and only present at the function interfaces, i.e. specify the type
in the function parameter lists, like in plain old C.

 +1 from me for allowing unicode identifiers.

 -MAXVOTE for type annotations in identifiers.

--
Gustavo J. A. M. Carneiro
"The universe is always one step beyond logic."
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to