2013-07-14 72 views
2
Failed example: 
    p.parse_name('Adams, Michael') 
    # doctest: +NORMALIZE_WHITESPACE 
Expected: 
    {'first_name': 'Michael', 'last_name': 'Adams','initials': 'MA'} 
Got: 
    {'first_name': 'Michael', 'last_name': 'Adams', 'initials': 'MA'} 

的文檔字符串是 -文檔測試NORMALIZE_WHITESPACE不起作用

>>> p.parse_name('Adams, Michael') 
... # doctest: +NORMALIZE_WHITESPACE 
{'first_name': 'Michael', 'last_name': 'Adams','initials': 'MA'} 
+0

爲什麼不加's'的,'後的空間? – Eric

+1

然後有什麼用+ NORMALIZE_WHITESPACE? –

回答

6

the docs

當指定時,空格(空白和新行)的所有序列被視爲相等。預期輸出內的空白的任何序列將實際輸出

','不包含空白的序列內匹配的空白的任何序列,因此不被視爲等於', '


你可能想閱讀的文檔的warnings section

Python不保證該鍵值對將在 打印任何特定的順序,所以像

測試
>>> foo() 
{"Hermione": "hippogryph", "Harry": "broomstick"} 

很脆弱!一個解決辦法是做

>>> foo() == {"Hermione": "hippogryph", "Harry": "broomstick"} 
True 
+1

對於字典問題,''pprint''也是一個不錯的解決方案。 ''from pprint import pprint as pp; PP(FOO())''。 ''pprint''會對鍵進行排序,並且還可以幫助您獲得大型結構的可讀顯示。 – vaab