Parce que je me suis fait avoir, je vous communique l'info.
Voilà un exemple de docstring :
def traitedir():
"""Cette fonction compare le répertoire de C:\fax avec D:\fax, et
\\Serveur\fax """
Hé bien, ne faites pas ça ! Il faut utiliser, systématiquement :
def traitedir():
r"""Cette fonction compare le répertoire de C:\fax avec D:\fax, et
\\Serveur\fax """
Hé oui, il faut mettre les docstrings en "raw strings". Pourquoi, me
direz-vous ? Parce que, cher monsieur (ou madame), essayez de lire ces
docstrings, avec le module inspect ; exemple : print
inspect.getdoc(traitedir)
Et ceci est aussi valable pour les commentaires (inspect.getcomments(xx))
N'oubliez pas : avec de petits 'rrrrrrrrrrrrrrrrrrrr', vos inspections de
scripts ronronneront...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe Cavalaria
Do Re Mi chel La Si Do wrote:
Bonsoir !
Parce que je me suis fait avoir, je vous communique l'info.
Voilà un exemple de docstring :
def traitedir(): """Cette fonction compare le répertoire de C:fax avec D:fax, et Serveurfax """
Hé bien, ne faites pas ça ! Il faut utiliser, systématiquement :
def traitedir(): r"""Cette fonction compare le répertoire de C:fax avec D:fax, et Serveurfax """
Hé oui, il faut mettre les docstrings en "raw strings". Pourquoi, me direz-vous ? Parce que, cher monsieur (ou madame), essayez de lire ces docstrings, avec le module inspect ; exemple : print inspect.getdoc(traitedir)
Attention, mettre un r devant les strings ne s'appelle par "raw strings" mais bien "regexp strings". En effet, il ne faut pas croire que ce mode permet la non interpretation absolue des . Essayez de mettre un nombre impair d'antislash comme derniers caractères de votre chaine pour voir de quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une chaine avec un nombre impair d'antislash ce qui fait que cette limitation ne pose pas de problèmes dans ce cas.
Il est très probable que Python 3000 cesse completement l'interpretation des antislash mais la sortie de celui-ci est encore très incertaine ;)
Do Re Mi chel La Si Do wrote:
Bonsoir !
Parce que je me suis fait avoir, je vous communique l'info.
Voilà un exemple de docstring :
def traitedir():
"""Cette fonction compare le répertoire de C:fax avec D:fax, et
\Serveurfax """
Hé bien, ne faites pas ça ! Il faut utiliser, systématiquement :
def traitedir():
r"""Cette fonction compare le répertoire de C:fax avec D:fax,
et
\Serveurfax """
Hé oui, il faut mettre les docstrings en "raw strings". Pourquoi, me
direz-vous ? Parce que, cher monsieur (ou madame), essayez de lire ces
docstrings, avec le module inspect ; exemple : print
inspect.getdoc(traitedir)
Attention, mettre un r devant les strings ne s'appelle par "raw strings"
mais bien "regexp strings". En effet, il ne faut pas croire que ce mode
permet la non interpretation absolue des . Essayez de mettre un nombre
impair d'antislash comme derniers caractères de votre chaine pour voir de
quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une
chaine avec un nombre impair d'antislash ce qui fait que cette limitation
ne pose pas de problèmes dans ce cas.
Il est très probable que Python 3000 cesse completement l'interpretation des
antislash mais la sortie de celui-ci est encore très incertaine ;)
Parce que je me suis fait avoir, je vous communique l'info.
Voilà un exemple de docstring :
def traitedir(): """Cette fonction compare le répertoire de C:fax avec D:fax, et Serveurfax """
Hé bien, ne faites pas ça ! Il faut utiliser, systématiquement :
def traitedir(): r"""Cette fonction compare le répertoire de C:fax avec D:fax, et Serveurfax """
Hé oui, il faut mettre les docstrings en "raw strings". Pourquoi, me direz-vous ? Parce que, cher monsieur (ou madame), essayez de lire ces docstrings, avec le module inspect ; exemple : print inspect.getdoc(traitedir)
Attention, mettre un r devant les strings ne s'appelle par "raw strings" mais bien "regexp strings". En effet, il ne faut pas croire que ce mode permet la non interpretation absolue des . Essayez de mettre un nombre impair d'antislash comme derniers caractères de votre chaine pour voir de quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une chaine avec un nombre impair d'antislash ce qui fait que cette limitation ne pose pas de problèmes dans ce cas.
Il est très probable que Python 3000 cesse completement l'interpretation des antislash mais la sortie de celui-ci est encore très incertaine ;)
Eric Brunel
On Tue, 14 Jun 2005 00:56:37 +0200, Christophe Cavalaria wrote: [snip]
Attention, mettre un r devant les strings ne s'appelle par "raw strings" mais bien "regexp strings".
Désolé mais non; cf. http://docs.python.org/ref/strings.html """ String literals may optionally be prefixed with a letter "r" or "R"; such strings are called raw strings and use different rules for interpreting backslash escape sequences. ^^^^^^^^^^^ """
En effet, il ne faut pas croire que ce mode permet la non interpretation absolue des . Essayez de mettre un nombre impair d'antislash comme derniers caractères de votre chaine pour voir de quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une chaine avec un nombre impair d'antislash ce qui fait que cette limitation ne pose pas de problèmes dans ce cas.
Ca n'a rien à voir avec les expressions régulières; si je me souviens bien, c'est un stupide problème de parsing qui fait qu'un ' dans une chaine est quand meme interprété comme une quote "échappée", meme quand on est dans une raw string. Donc, si on écrit r'', c'est en fait la quote commençant la chaine, une quote "échappée" qui sera interprétée *plus tard* comme un backslash + une quote et il manque la quote de fin => SyntaxError
Il est très probable que Python 3000 cesse completement l'interpretation des antislash mais la sortie de celui-ci est encore très incertaine ;)
Tu as des sources pour ça? Parce que j'aimerais bien savoir comment on pourra écrire 'Je m'appelle "toto"' (ou "Je m'appelle "toto"" si tu préfères) si on n'a plus de moyen d'"échapper" les quotes ou les double-quotes. Mettre des ''' ou des """ à chaque fois me semble un peu lourdingue... -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65'*9--56l7+-'])"
On Tue, 14 Jun 2005 00:56:37 +0200, Christophe Cavalaria <chris.cavalaria@free.fr> wrote:
[snip]
Attention, mettre un r devant les strings ne s'appelle par "raw strings"
mais bien "regexp strings".
Désolé mais non; cf. http://docs.python.org/ref/strings.html
"""
String literals may optionally be prefixed with a letter "r" or "R"; such strings are called
raw strings and use different rules for interpreting backslash escape sequences.
^^^^^^^^^^^
"""
En effet, il ne faut pas croire que ce mode
permet la non interpretation absolue des . Essayez de mettre un nombre
impair d'antislash comme derniers caractères de votre chaine pour voir de
quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une
chaine avec un nombre impair d'antislash ce qui fait que cette limitation
ne pose pas de problèmes dans ce cas.
Ca n'a rien à voir avec les expressions régulières; si je me souviens bien, c'est un stupide problème de parsing qui fait qu'un ' dans une chaine est quand meme interprété comme une quote "échappée", meme quand on est dans une raw string. Donc, si on écrit r'', c'est en fait la quote commençant la chaine, une quote "échappée" qui sera interprétée *plus tard* comme un backslash + une quote et il manque la quote de fin => SyntaxError
Il est très probable que Python 3000 cesse completement l'interpretation des
antislash mais la sortie de celui-ci est encore très incertaine ;)
Tu as des sources pour ça? Parce que j'aimerais bien savoir comment on pourra écrire 'Je m'appelle "toto"' (ou "Je m'appelle "toto"" si tu préfères) si on n'a plus de moyen d'"échapper" les quotes ou les double-quotes. Mettre des ''' ou des """ à chaque fois me semble un peu lourdingue...
--
python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65'*9--56l7+-'])"
On Tue, 14 Jun 2005 00:56:37 +0200, Christophe Cavalaria wrote: [snip]
Attention, mettre un r devant les strings ne s'appelle par "raw strings" mais bien "regexp strings".
Désolé mais non; cf. http://docs.python.org/ref/strings.html """ String literals may optionally be prefixed with a letter "r" or "R"; such strings are called raw strings and use different rules for interpreting backslash escape sequences. ^^^^^^^^^^^ """
En effet, il ne faut pas croire que ce mode permet la non interpretation absolue des . Essayez de mettre un nombre impair d'antislash comme derniers caractères de votre chaine pour voir de quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une chaine avec un nombre impair d'antislash ce qui fait que cette limitation ne pose pas de problèmes dans ce cas.
Ca n'a rien à voir avec les expressions régulières; si je me souviens bien, c'est un stupide problème de parsing qui fait qu'un ' dans une chaine est quand meme interprété comme une quote "échappée", meme quand on est dans une raw string. Donc, si on écrit r'', c'est en fait la quote commençant la chaine, une quote "échappée" qui sera interprétée *plus tard* comme un backslash + une quote et il manque la quote de fin => SyntaxError
Il est très probable que Python 3000 cesse completement l'interpretation des antislash mais la sortie de celui-ci est encore très incertaine ;)
Tu as des sources pour ça? Parce que j'aimerais bien savoir comment on pourra écrire 'Je m'appelle "toto"' (ou "Je m'appelle "toto"" si tu préfères) si on n'a plus de moyen d'"échapper" les quotes ou les double-quotes. Mettre des ''' ou des """ à chaque fois me semble un peu lourdingue... -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65'*9--56l7+-'])"
Christophe Cavalaria
Eric Brunel wrote:
On Tue, 14 Jun 2005 00:56:37 +0200, Christophe Cavalaria wrote: [snip]
Attention, mettre un r devant les strings ne s'appelle par "raw strings" mais bien "regexp strings".
Désolé mais non; cf. http://docs.python.org/ref/strings.html """ String literals may optionally be prefixed with a letter "r" or "R"; such strings are called raw strings and use different rules for interpreting backslash escape sequences. ^^^^^^^^^^^ """
Oups, voila ce que c'es de poster à des heures indues !
En effet, il ne faut pas croire que ce mode permet la non interpretation absolue des . Essayez de mettre un nombre impair d'antislash comme derniers caractères de votre chaine pour voir de quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une chaine avec un nombre impair d'antislash ce qui fait que cette limitation ne pose pas de problèmes dans ce cas.
Ca n'a rien à voir avec les expressions régulières; si je me souviens bien, c'est un stupide problème de parsing qui fait qu'un ' dans une chaine est quand meme interprété comme une quote "échappée", meme quand on est dans une raw string. Donc, si on écrit r'', c'est en fait la quote commençant la chaine, une quote "échappée" qui sera interprétée *plus tard* comme un backslash + une quote et il manque la quote de fin => SyntaxError
Oui c'est un stupide problème de parsing mais la raison pour laquelle ils ont laissé cela en l'état est justement parceque ça ne pose pas de problèmes pour les regexp. Sinon, une telle limitation aurait probablement été jugée redibitoire.
De toute façon, il ne faut jamais coder en dur des séparateurs de répertoire mais passer par os.path.join plustot :)
Il est très probable que Python 3000 cesse completement l'interpretation des antislash mais la sortie de celui-ci est encore très incertaine ;)
Tu as des sources pour ça? Parce que j'aimerais bien savoir comment on pourra écrire 'Je m'appelle "toto"' (ou "Je m'appelle "toto"" si tu préfères) si on n'a plus de moyen d'"échapper" les quotes ou les double-quotes. Mettre des ''' ou des """ à chaque fois me semble un peu lourdingue...
Comme dans Pascal et dans SQL ( le vrai, pas cette chose horrible appelée MySql ). On double le séparateur quand on veut en mettre un : exemple : 'Je m''appelle "toto"' Simple quote : "'" ou '''
Ou alors simplement comme je fesais en Basic sur Amstrad : 'Je m" + chr( codedusimplequote ) + "appelle "toto"' ;) Mais je pense plustot pour la solution precedente.
Eric Brunel wrote:
On Tue, 14 Jun 2005 00:56:37 +0200, Christophe Cavalaria
<chris.cavalaria@free.fr> wrote:
[snip]
Attention, mettre un r devant les strings ne s'appelle par "raw strings"
mais bien "regexp strings".
Désolé mais non; cf. http://docs.python.org/ref/strings.html
"""
String literals may optionally be prefixed with a letter "r" or "R"; such
strings are called raw strings and use different rules for interpreting
backslash escape sequences. ^^^^^^^^^^^
"""
Oups, voila ce que c'es de poster à des heures indues !
En effet, il ne faut pas croire que ce mode
permet la non interpretation absolue des . Essayez de mettre un nombre
impair d'antislash comme derniers caractères de votre chaine pour voir de
quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer
une chaine avec un nombre impair d'antislash ce qui fait que cette
limitation ne pose pas de problèmes dans ce cas.
Ca n'a rien à voir avec les expressions régulières; si je me souviens
bien, c'est un stupide problème de parsing qui fait qu'un ' dans une
chaine est quand meme interprété comme une quote "échappée", meme quand on
est dans une raw string. Donc, si on écrit r'', c'est en fait la quote
commençant la chaine, une quote "échappée" qui sera interprétée *plus
tard* comme un backslash + une quote et il manque la quote de fin =>
SyntaxError
Oui c'est un stupide problème de parsing mais la raison pour laquelle ils
ont laissé cela en l'état est justement parceque ça ne pose pas de
problèmes pour les regexp. Sinon, une telle limitation aurait probablement
été jugée redibitoire.
De toute façon, il ne faut jamais coder en dur des séparateurs de répertoire
mais passer par os.path.join plustot :)
Il est très probable que Python 3000 cesse completement l'interpretation
des antislash mais la sortie de celui-ci est encore très incertaine ;)
Tu as des sources pour ça? Parce que j'aimerais bien savoir comment on
pourra écrire 'Je m'appelle "toto"' (ou "Je m'appelle "toto"" si tu
préfères) si on n'a plus de moyen d'"échapper" les quotes ou les
double-quotes. Mettre des ''' ou des """ à chaque fois me semble un peu
lourdingue...
Comme dans Pascal et dans SQL ( le vrai, pas cette chose horrible appelée
MySql ). On double le séparateur quand on veut en mettre un : exemple :
'Je m''appelle "toto"'
Simple quote : "'" ou '''
Ou alors simplement comme je fesais en Basic sur Amstrad : 'Je m" +
chr( codedusimplequote ) + "appelle "toto"' ;) Mais je pense plustot pour
la solution precedente.
On Tue, 14 Jun 2005 00:56:37 +0200, Christophe Cavalaria wrote: [snip]
Attention, mettre un r devant les strings ne s'appelle par "raw strings" mais bien "regexp strings".
Désolé mais non; cf. http://docs.python.org/ref/strings.html """ String literals may optionally be prefixed with a letter "r" or "R"; such strings are called raw strings and use different rules for interpreting backslash escape sequences. ^^^^^^^^^^^ """
Oups, voila ce que c'es de poster à des heures indues !
En effet, il ne faut pas croire que ce mode permet la non interpretation absolue des . Essayez de mettre un nombre impair d'antislash comme derniers caractères de votre chaine pour voir de quoi je parle.
Si j'ai bien compris, dans les regexp il n'est pas authorisé de terminer une chaine avec un nombre impair d'antislash ce qui fait que cette limitation ne pose pas de problèmes dans ce cas.
Ca n'a rien à voir avec les expressions régulières; si je me souviens bien, c'est un stupide problème de parsing qui fait qu'un ' dans une chaine est quand meme interprété comme une quote "échappée", meme quand on est dans une raw string. Donc, si on écrit r'', c'est en fait la quote commençant la chaine, une quote "échappée" qui sera interprétée *plus tard* comme un backslash + une quote et il manque la quote de fin => SyntaxError
Oui c'est un stupide problème de parsing mais la raison pour laquelle ils ont laissé cela en l'état est justement parceque ça ne pose pas de problèmes pour les regexp. Sinon, une telle limitation aurait probablement été jugée redibitoire.
De toute façon, il ne faut jamais coder en dur des séparateurs de répertoire mais passer par os.path.join plustot :)
Il est très probable que Python 3000 cesse completement l'interpretation des antislash mais la sortie de celui-ci est encore très incertaine ;)
Tu as des sources pour ça? Parce que j'aimerais bien savoir comment on pourra écrire 'Je m'appelle "toto"' (ou "Je m'appelle "toto"" si tu préfères) si on n'a plus de moyen d'"échapper" les quotes ou les double-quotes. Mettre des ''' ou des """ à chaque fois me semble un peu lourdingue...
Comme dans Pascal et dans SQL ( le vrai, pas cette chose horrible appelée MySql ). On double le séparateur quand on veut en mettre un : exemple : 'Je m''appelle "toto"' Simple quote : "'" ou '''
Ou alors simplement comme je fesais en Basic sur Amstrad : 'Je m" + chr( codedusimplequote ) + "appelle "toto"' ;) Mais je pense plustot pour la solution precedente.