Hacking Python "Richieste" libreria .. Come iniziare come un pythonista intermedio?

2

La mia domanda è concettuale, ma estremamente vitale per me.

Sono uno sviluppatore Python intermedio. Ne conosco abbastanza bene e lo uso quotidianamente. Ora vorrei trasformare le mie capacità da libreria / utente API a "designer".

Ho trovato che la libreria " Python Requests " di Kenneth Reitz è un ottimo punto da esplorare Modelli e idiomi di pitone. Devo imparare a suddividere un grosso problema nel suo% essenziale diModules, definire le classi / funzioni richieste e usarle per lavorare insieme.

Mi manca una tale disciplina, e sto morendo di fame per acquisire questa conoscenza.

Come dovrei tuffarmi in questa libreria? È grande , con molti moduli (con nomi logici, ovviamente), classi e metodi. Ho iniziato a leggere il codice, ma non so dove sono e per cosa è progettata questa porzione di codice.

    
posta Soask 27.01.2013 - 22:52
fonte

3 risposte

2

Mettiti a fuoco. Pensa a una domanda, quindi prova a rispondere. Ad esempio:

  • in che modo la libreria codifica un dizionario in un formato adatto per l'invio a un server web?
  • In che modo la libreria memorizza le informazioni di autenticazione?
  • in che modo la libreria converte un dizionario di intestazioni in una richiesta web?
  • In che modo la libreria implementa la registrazione?

... E così via.

    
risposta data 27.01.2013 - 23:46
fonte
2

Si inizia seguendo attività comuni; scopri come viene gestita una normale richiesta GET, ad esempio, o come funziona il metodo .json() una volta che i dati sono arrivati.

Aiuta a conoscere l'argomento modellato da un corpo di codice. Sapere come funziona HTTP dal punto di vista del cliente aiuta; se non sai cosa sia un reindirizzamento 302 o come HTTP usi le intestazioni per scambiare informazioni, avrai più difficoltà a capire tutto ciò che accade.

Fortunatamente la libreria requests mantiene le sue preoccupazioni piacevoli e separate; Ad esempio, non è necessario immergersi completamente negli interni della libreria urllib3 .

    
risposta data 28.01.2013 - 00:10
fonte
1

Come ha sottolineato @Martijn Pieters, è necessario sapere quali problemi risolve la libreria, che in termini pratici significa che devi capire il dominio problematico .

allora sarai in grado di avere un'idea delle scelte fatte dall'autore, apprezzarne alcune, criticare gli altri.

Se la libreria è troppo grande per avere una panoramica immediata, consiglierei di iniziare in un punto in cui hai un'idea (almeno approssimativa) di ciò che sta facendo il codice, come ad es. requests/api.py e

  1. capisci gli oggetti che trovi lì e
  2. capisci come il codice che stai leggendo modifica quegli oggetti.
  3. vedere se (e quali) oggetti vengono creati e
  4. per cosa sono usati quegli oggetti.

se lo fai da diversi punti di partenza, otterrai una panoramica del tutto. è un po 'come esplorare un territorio sconosciuto.

    
risposta data 28.01.2013 - 08:35
fonte

Leggi altre domande sui tag