esto puede no ser una deficiencia de terremoto de pitón, pero todavía se preguntan acerca de la razón de ser de la siguiente comportamiento: cuando plazoerror de sintaxis extraña en Python, versión 2.6 y 3.1
source = """
print('helo')
if __name__ == '__main__':
print('yeah!')
#"""
print(compile(source, '<whatever>', 'exec'))
i Get ::
File "<whatever>", line 6
#
^
SyntaxError: invalid syntax
i puedo evitar esta excepción por (1) la supresión de la #
de salida; (2) borrando o superando las líneas if __name__ == '__main__':\n print('yeah!')
; (3) agregue una nueva línea al final de la fuente .
por otra parte, si tengo el extremo fuente sin un salto de línea final justo detrás de la print('yeah!')
, la fuente también se compilará sin error.
también podría reproducir este comportamiento con Python 2.6, por lo que no es nuevo a la serie 3k.
Me parece que este error sea altamente irritante, tanto más cuanto que cuando me puse por encima de la fuente dentro de un archivo y ejecutarlo directamente o tienen que importada, no se producirá ningún error, lo cual es el comportamiento esperado.
a #
(hash) fuera de una cadena literal siempre debe representar el comienzo de un comentario (posiblemente vacío) en una fuente de Python; además, la presencia o ausencia de de una cláusula if __name__ == '__main__'
debería no cambiar la interpretación de un soure en un nivel sintáctico.
¿Alguien puede reproducir el problema anterior y/o comentar sobre el fenómeno ?
aplausos
Pude reproducirlo. Bizarre - También estoy interesado en la respuesta. –
Reproducido en 2.6.1. También parece ser un error para mí, pero es un caso bastante extremo. –
Puede poner su "actualización" como respuesta y aceptarla. – kennytm