2008-11-30 10 views
43

Soy un largo tiempo de desarrollo en C++/Java tratando de entrar en Python y estoy buscando el estereotipo de "Python para de C++" el artículo, pero la elaboración en blanco. He visto este tipo de cosas para C#, Java, etc., y son increíblemente útiles para ponerse al día sobre las características del lenguaje y las diferencias notables. Alguien tiene alguna referencia?Python para de C++

Como una cuestión secundaria bono, lo programa abierto Python fuente sugeriría usted mirando para el diseño limpio, comentando, y el uso de la lengua como un punto de referencia para el estudio?

Gracias de antemano.

Respuesta

26

Nunca entendí realmente el enfoque de "Language X for Language Y developers". Cuando busco aprender Language X, quiero aprender cómo programar en él de la misma forma que lo hacen los programadores de Language X, no de la forma en que lo hacen los programadores de Language Y. Quiero aprender las características, expresiones idiomáticas, etc. que son exclusivas del idioma que estoy aprendiendo. Quiero ser capaz de aprovechar las cosas que hacen que el lenguaje sea especial y usar ese conocimiento para expandir mis formas de pensar y resolver problemas. No creo que obtenga el mismo tipo de información de un tutorial que se enmarcó en el contexto de otro idioma. Si puede aprender su primer idioma sin un tutorial orientado a algo que ya sabe, debería poder elegir un segundo idioma de la misma manera (y en mi experiencia, mientras más idiomas conozca, más fácil será aprender otros).

Dicho esto, yo recomendaría The Python Tutorial como una forma buena, rápida, y fácil para ponerse en marcha con Python y Dive Into Python como una introducción más completa, también disponible de forma gratuita here. También estoy de acuerdo con lo que otros han dicho respecto de ver el código de las bibliotecas estándar como una fuente de buenos ejemplos y prácticas de diseño, las bibliotecas estándar de Python son bastante limpias y fáciles de leer.

+43

Estoy de acuerdo, las expresiones idiomáticas y las funciones son importantes. Pero no soy nuevo en programación, así que muchos tutoriales me aburrieron con la perforación a través de "esto es un bucle for" antes de que revelen "oh sí, puede iterar sobre las estructuras de la lista". –

+0

¡Al menos no estás tratando de hacer lo contrario! C++ tiene un problema en el sentido de que su uso es muy inconsistente, generalmente se basa principalmente en el fondo del codificador. – coppro

+0

Además, Diving Into Python es para programadores experimentados. Solo puedo usar ese enlace yo mismo; ¡Gracias! – coppro

0

Para obtener los mejores ejemplos de código de un idioma, la biblioteca estándar del idioma suele ser un buen lugar para buscar. Sin embargo, elija una pieza reciente: las partes antiguas probablemente están escritas para versiones anteriores y también a veces se escribieron antes de que la biblioteca creciera lo suficiente como para garantizar grandes estándares, como PHP y las bibliotecas de Erlang, que tienen inconsistencias internas.

Para Python en particular, Python 3000 está limpiando mucho la biblioteca, por lo que es probablemente una gran fuente de buen código de Python (aunque está escrito para una futura versión de Python).

4

Aprendí mucho sobre Python al leer la fuente de la biblioteca estándar que se envía con Python. ¡Me parece recordar haber tenido algunos "a-ha!" momentos al leer urllib2.py en particular.

2

Python es suficientemente diferente de C++, por lo que normalmente no se pueden transferir conocimientos específicos. Hay algunos languagecomparisons disponibles. Lo que puede transferir es el conocimiento de API específicas, p. de las API POSIX o de socket.

Como un ejemplo para una aplicación típica Python (GUI), mira a IDLE (como se envía para Python).

1

C# y Java se consideran sustitutos más limpios para C++ en muchas áreas de aplicación por lo que a menudo hay una "migración" de uno a otro, por lo que hay libros disponibles.

Python y C++ son muy diferentes bestias, y aunque ambos son lenguajes de programación de propósito general, se considera que están dirigidos hacia diferentes extremos del espectro de programación.

No intente escribir C++ en Python; de hecho, trate de olvidar C++ cuando escribe Python. Me pareció mucho mejor aprender los paradigmas y técnicas comunes de Python y aplicarlos a mis programas C++ que al revés.

1

Para aprender el idioma, gratis y en línea python tutorial es todo lo que necesita para aprender el idioma y comenzar a escribir aplicaciones. Si quiere un libro, he encontrado Beginning Python de Apress para ser una excelente referencia y tutorial. Por supuesto, la mejor manera de aprender un idioma es escribir código, por lo tanto, le recomendaría que consulte Boost.Python. Si tiene un C++ que necesita ser un poco más flexible, Boost.Python puede darle una buena excusa para aprender Python y recibir un pago por ello.

Cuestiones relacionadas