2012-08-16 7 views
25

Sto leggendo il codice sorgente bottle.py. È un framework web, con solo 3000 righe python code. Così belloPragmas in python

ho trovato un po 'di codice come questo:

class ServerAdapter(object): 
    quiet = False 
    def __init__(self, host='127.0.0.1', port=8080, **config): 
     self.options = config 
     self.host = host 
     self.port = int(port) 

    def run(self, handler): # pragma: no cover 
     pass 
    ... 

Cosa significa il # pragma: no cover significa? Non riesco a trovare alcuna introduzione sulla sintassi pragma nelle documentazioni python.

+7

Credo che sia un commento per pycoverage per dirgli di saltare il metodo –

+2

Il '# pragma' non è sicuramente nulla che funzioni direttamente in Python. Per Python, è ** solo un commento **. Non c'è nulla di simile a dire che il preprocessore C per quello. – pepr

risposta

43

E 'apparenly legato alla coverage.py:

Coverage.py è uno strumento per misurare la copertura di codice dei programmi Python. Controlla il tuo programma, notando quali parti del codice sono state eseguite, quindi analizza la sorgente per identificare il codice che potrebbe essere stato eseguito ma non lo è stato.

Questo esatto # pragma: no cover è il suggerimento che la parte di codice dovrebbe essere ignorato dallo strumento - vedere Excluding code from coverage.

11

Per Python, è semplicemente un commento. Potrebbe trattarsi di un'annotazione indirizzata a uno strumento esterno, che legge e analizza il codice Python, simile, ad esempio, alle annotazioni #doctest: +ELLIPSIS di doctest o alle annotazioni di stile # pylint: disable=W0613 di PyLint.