[python-madrid] Envio de PEP
Francisco Javier Cuadrado
fcocuadrado at gmail.com
Wed Jul 13 08:55:04 CEST 2011
El día 12 de julio de 2011 17:59, piranna at gmail.com
<piranna at gmail.com> escribió:
> Llevo ya unas semanas queriendo enviar un PEP para añadir un par de
> nuevas sintaxis al lenguaje y por examenes y demas no he podido
> hacerlo. Ahora tengo tiempo pero no se ni como hacerlo (aunque me he
> leido el PEP-1 no ha terminado de quedarme claro) ni si realmente
> serian bien acogidas las ideas, asi que os las pongo por aqui por si
> podeis echarme una mano. Ambas estan relaccionadas con la sintaxis del
> tratamiento de excepciones y no modifican en absoluto ni el bytecode
> ni el rendimiento, solo es un poco mas de "azucar sintactico" :-P
>
> La primera es mas o menos facilmente aceptable, y consiste en añadir
> la posibilidad de añadir ramas 'elif' a la excepcion. Un ejemplo
> (inventado):
>
> try:
> user = GetUser()
> except ErrorDB:
> print "error al obtener usuario"
> else:
> if user == 0:
> print "Administrador"
> else:
> print "usuario normal"
> finally:
> print "adios"
>
> Ese 'else if' dejandolo todo indentado no me parece muy agradable,
> sobretodo teniendo en cuenta que el 'else' recuerda a la sintaxis del
> if-elif-else y por instinto lo suyo seria usarlo, lo cual para dejarlo
> mas "bonito" y mas intuitivo mi propuesta es cambiar la sintaxis del
> try-except-else-finally por try-except-elif-else-finally tal y como
> muestro a continuacion:
>
> try:
> user = GetUser()
> except ErrorDB:
> print "error al obtener usuario"
> elif user == 0:
> print "Administrador"
> else:
> print "usuario normal"
> finally:
> print "adios"
>
> Hace el try un poco mas complejo e incluso pedante, pero a nivel
> interno (bytecode) deberian ser completamente iguales, y ademas es
> totalmente retrocompatible.
>
>
> La segunda es un poco mas conflictiva, porque cambia un poco mas la
> sintaxis para un caso expecifico. Consiste en que para una excepcion
> (o grupo de excepciones) en concreto para las que no queremos que haga
> nada no haya que indicar una rama vacia con 'pass':
>
> try:
> user = GetUser()
> except ErrorDB:
> pass
> else:
> print "hola",user
>
> Mi idea es que para esas excepciones para las que no se necesite hacer
> nada, indicarlas de alguna manera. Mi idea es hacerlo en el try:
>
> try ErrorDB:
> user = GetUser()
> else:
> print "hola",user
>
> Obviamente, tambien se puede usar un grupo de excepciones:
>
> try (ErrorDB,SocketError):
> user = GetUser()
> else:
> print "hola",user
>
> Al igual que la anterior, esta solo es para añadir azucar sintactico e
> internamente serian iguales a las versiones antiguas, aunque esta
> ultima si que añadiria mas complejidad en el parser. Obviamente, ambas
> proposiciones son compatibles. Unificandolas la sintaxis quedaria asi:
>
> try ErrorDB:
> user = GetUser()
> elif user == 0:
> print "Administrador"
> else:
> print "usuario normal"
> finally:
> print "adios"
>
> En fin, comentadme que os parecen, si hay que mejorarlas en algo y
> como enviarlas... :-D
>
No tengo ni idea sobre cómo funcionan los PEP así que no puedo ayudarte.
Sólo quería comentar que en principio esta lista sólo era para
organizar el grupo, aunque no me importa que se pregunten dudas, pero
seguramente en la lista oficial de Python en Español[1] te puedan
ayudar mejor, porque hay más gente y muchos de ellos son unos cracks.
[1] python-es at python.org
--
Saludos
Fran
--
Grupo de usuarios de python ubicados en Madrid
http://groups.google.es/group/python-madrid
http://python-hispano.org/PythonMadrid
Para darte de baja del grupo envía un mensaje a python-madrid+unsubscribe at googlegroups.com
More information about the Madrid
mailing list