2017-09-04 3 views
1

J'ai une question à propos de docstrings dans les simples scripts Python email.Quelle est l'utilité d'une docstring dans ce code python?

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

Je vois des docstrings comme ça souvent dans les scripts d'email. Ma question est: que fait le docstring? Je pensais docstrings ont été utilisés uniquement pour help commandes et autres. Je m'excuse si c'est une question stupide.

Merci!

+1

C'est juste un littéral de chaîne contenant une nouvelle ligne. –

+0

Si vous avez répondu à votre question, vous pouvez [marquer une réponse] (https: // stackoverflow.com/help/someone-answers) accepté. –

Répondre

0

Il est parce qu'il est utile d'écrire la chaîne en plusieurs lignes, à partir du docs:

littéraux de chaîne peuvent couvrir plusieurs lignes. Une façon d'utiliser triple-quotes: "" "..." "" ou "'' ... '' '.

2

Une chaîne avec """...""" (guillemets triples) est appelée une chaîne multiligne. Il existe une distinction entre une chaîne multiligne et un docstring. Ce dernier est un sous-ensemble du premier.

La personne en question est affectée à une variable, donc et non une docstring. Un docstring est ce que vous trouverez en haut d'une fonction, comme ceci:

def foo(): 
    """This is a doc-string""" 
    pass 

et impression foo.__doc__ vous donne

print(foo.__doc__) 
'This is a doc-string' 

Vous devez comprendre que seule la première chaîne multiligne en fonction (si elle n'est pas affectée) devient la docstring d'une fonction (à condition que les commutateurs d'optimisation ne soient pas définis) et les autres sont tous rejetés.

En revanche,

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

se trouve être une chaîne multi-lignes avec des arguments de format C-style qui est attribué à la message variable.

Pour en savoir plus:

+1

En réalité, les docstrings ne sont pas un "sous-ensemble" de chaînes multilignes - un docstring ne doit pas être triplé. –

1

Ce n'est pas un docstring mais juste une chaîne normale (str). En utilisant les guillemets doubles ("""), ou les guillemets simples ('''), vous dites à Python d'utiliser cela comme une longue chaîne. Cette chaîne est séparée par \n. Docstrings utilise souvent ce type de longue chaîne pour faciliter la lecture.

Dans votre code, semble comme il se prépare l'e-mail, en utilisant des variables pour indiquer le sujet, le texte, CC, etc.

Espoir il est logique.