2010-02-09 17 views
5

Hago programación básica de Python y ahora quiero profundizar en las características del lenguaje. He recopilado/considerado las siguientes capacidades avanzadas de Python y las estoy aprendiendo ahora.¿Cuáles son las funciones consideradas como python avanzado?

  1. decorador
  2. iterador
  3. Generador
  4. Meta Clase

Algo más que añadir/considera que la lista anterior?

+1

En mi humilde opinión, esas son las características básicas del idioma. La programación "avanzada" está usando/escribiendo librerías complejas y no triviales para hacer Real Work. –

+0

Wiki de la comunidad ahora. siéntete libre de actualizar ... –

+0

Es sorprendente cómo ves a las personas usar todas esas características, y luego volver a implementar cosas de textwrap o itertools porque no conocen muy bien la biblioteca. También saber cuándo elegir una lista/set/array/heapq/deque parece ser difícil para algunos. –

Respuesta

1

Los primeros 3 son Python intermedios, no avanzados. Para avanzado agregue las cosas en las secciones Importing Modules y Python Language Services de la referencia de la biblioteca.

+1

No estoy seguro de si el decorador y la clase meta se consideran intermedios. Raramente lo usamos en la programación diaria a menos que estemos creando un marco. –

+1

"metaclass" no es parte de los "primeros 3". Definitivamente es avanzado, ya que es difícil de entender y fácil de usar. Estoy de acuerdo con que el decorador (al escribirlos) ES intermedio. Tal vez solo se requiera al hacer un marco, pero cualquier aplicación no trivial termina haciendo su propio marco. – ddaa

2

En primer lugar, este hilo debe ser wiki de la comunidad.

En segundo lugar, los iteradores y generadores son bastante básicos Python en mi humilde opinión. Estoy de acuerdo contigo en decoradores y metaclases. Pero no soy un programador muy bueno, así que probablemente encuentre esto más difícil de envolver mi cerebro que otros.

En tercer lugar, agregaría threading/multiprocesamiento a la lista. Eso es realmente complicado :)

+0

añadido como wiki de la comunidad. –

+0

Oye, pensé que cuando una pregunta es wiki comunitaria, las respuestas también. Obviamente no, así que cambié mi respuesta a cw, también. –

2

Hay algunos conceptos básicos útiles que se pueden agregar a su lista, y que no necesariamente enseñar en una clase de Python introductoria (desde la más común a lo más específico):

Algunos puntos relat ed a módulos estándar importantes:

  • La fabricación de sus clases compatible con los módulos estándar y copypickle.
1

Creo que encontrará que no hay una buena respuesta a su pregunta. Lo bueno de Python es que todas sus características son bastante fáciles de entender. Pero hay suficiente material en el idioma y la biblioteca que nunca se puede aprender. Entonces realmente se reduce a lo que has tenido ocasión de usar, y de lo que solo has oído hablar.

Si no ha utilizado decoradores o generadores, suenan avanzados. Pero una vez que realmente tiene que usarlos en una situación del mundo real, se dará cuenta de que son realmente bastante simples y se preguntará cómo logró vivir sin ellos antes.

Cuestiones relacionadas