Question

Existe-t-il un moyen d'obtenir objet .__ doc __ en tant que chaîne brute, en dehors de l'ajout d'un "r" devant la doctrine elle-même dans le code source?

J'ai du code latex à l'intérieur et les '\ r's', '\ f's etc créent des problèmes.

Était-ce utile?

La solution

Le type Python n'existe pas en tant que "chaîne brute". - Il existe des chaînes littérales brutes , qui ne sont qu'une approche parmi les syntaxes pour spécifier les constantes (c'est-à-dire les littéraux) qui sont: de types de chaîne. Donc, "obtenir" quelque chose " comme une chaîne brute " ça n'a aucun sens. Vous pouvez écrire des chaînes de documents sous forme de littéraux de chaîne bruts (c'est-à-dire, avec le préfixe r ). C'est exactement ce qui désigne un littéral de chaîne brute, la syntaxe spécifique qui identifie une telle constante. Compilateur Python), ou bien doublez leurs barres obliques inverses (une autre façon de spécifier des chaînes constantes, y compris des caractères barre oblique inversée), mais cela n’a rien à voir avec "obtenir". les d'une manière ou d'une autre.

Autres conseils

La différence entre une chaîne brute et le reste dépend simplement de la syntaxe littérale du code source. une fois analysé, il n’ya plus d’objet chaîne «brut». le résultat de repr (object .__ doc __) sera toujours tel que vous pouvez copier et coller le résultat dans un script source Python et obtenir la chaîne d'origine.

considérez:

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

Non, vous devez ajouter le r. Si vous n’ajoutez pas le r, vous ne pourrez absolument pas récupérer la chaîne originale, quoi que vous fassiez.

Si vous n'aimez pas les chaînes brutes, l'autre solution consiste à échapper vos barres obliques inverses dans les chaînes avec une barre oblique inverse supplémentaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top