strip() et la bande(chaîne de caractères.des espaces) donnent des résultats différents en dépit de la documentation qui suggère qu'ils devraient être les mêmes

J'ai une chaîne Unicode avec certains non-rupture des espaces au début et à la fin. J'obtiens des résultats différents lors de l'utilisation de strip() vs strip(string.whitespace).

>>> import string
>>> s5 = u'\xa0\xa0hello\xa0\xa0'
>>> print s5.strip()
hello
>>> print s5.strip(string.whitespace)
  hello  

La documentation pour strip() dit, "Si omis ou None, le chars argument par défaut en supprimant les espaces." La documentation pour string.whitespace dit, "Une chaîne contenant tous les caractères qui sont considérés comme des espaces."

Donc si string.whitespace contient tous les caractères qui sont considérés comme des espaces, alors pourquoi les résultats sont-ils différents? A-t-elle quelque chose à voir avec l'Unicode?

Je suis à l'aide de Python 2.7.6

string.whitespace est " \t\n\r\x0b\x0c" sur mon Python 3.2.3. Clairement Unicode est hors de l'image.
La documentation n'est pas dire que string.whitespace est utilisé par unicode.strip à définir ce qui est et n'est pas d'espaces, cependant. Je crois que la plupart des string module est obsolète, après avoir été plié dans le str classe elle-même.
en dehors de constantes, de Modèle, de Formatage et de maketrans - yup... à peu près tous sur la classe maintenant

OriginalL'auteur Becca codes | 2014-03-06