Domanda

Esiste un modo per ottenere oggetto .__ doc__ come stringa non elaborata, oltre ad aggiungere una 'r' davanti al dottring stesso nel codice sorgente?

Ho dentro il codice in lattice e '\ r's', \ f's etc stanno creando problemi.

È stato utile?

Soluzione

Non esiste un tipo Python come " stringa grezza " - ci sono stringa non elaborata letterali , che sono solo un approccio sintassi (su molti) per specificare costanti (cioè letterali) che sono di tipi di stringa. Quindi " ottenere " qualcosa " come una stringa grezza " semplicemente non ha senso. Puoi scrivere dotstring letterali come stringhe letterali non elaborate (ovvero, con il prefisso r ): è esattamente ciò che indica un letterale stringa non elaborato, la sintassi specifica che identifica una costante costante Compilatore Python), oppure raddoppiare eventuali barre rovesciate (un modo alternativo per specificare stringhe costanti inclusi i caratteri barra rovesciata), ma ciò non ha nulla a che fare con "ottenere" in un modo o nell'altro.

Altri suggerimenti

la differenza tra una stringa non elaborata e altrimenti è solo una questione di sintassi letterale del codice sorgente. una volta analizzato, non vi è alcun oggetto stringa "raw". il risultato di repr (object .__ doc__) sarà sempre tale da poter copiare e incollare il risultato in uno script sorgente Python e ottenere la stringa originale.

considerare:

>>> def foo():
...     'foo\nbar'
...     pass
...
>>> foo.__doc__
'foo\nbar'
>>> print foo.__doc__
foo
bar
>>>

No, devi aggiungere la r. Se non aggiungi la r, non puoi assolutamente essere certo di recuperare la stringa originale, qualunque cosa tu faccia.

Se non ti piacciono le stringhe grezze, l'altra alternativa è sfuggire alle tue barre rovesciate nelle corde con una barra rovesciata aggiuntiva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top