我在寫單元測試是需要雙方的*args
和**kwargs
參數的函數。一個合理的用例在該函數中的*args
argment後使用關鍵字參數,即形式如何從舊Python版本隱藏不兼容的代碼?
def f(a, *b, **c):
print a, b, c
f(1, *(2, 3, 4), keyword=13)
現在這僅became legal in Python 2.6的;在早期版本中,上面的行是語法錯誤,因此甚至不會編譯爲字節碼。
我的問題是:如何測試在新的Python版本所提供的功能,仍然有測試較舊版本的Python運行?
我應該指出該函數本身對早期的Python版本來說工作正常,它只是一些在Python 2.6之前是語法錯誤的調用。我所看到的用於檢查Python版本的各種方法對此不起作用,因爲它不會超過編譯階段。
我寧願不要有測試分成,如果在所有可能的多個文件。
爲什麼不簡單地將代碼重新格式化爲2.6之前的版本? – 2009-08-23 11:18:44
@美國洛特:我想我並沒有意識到,新的語法只是語法糖,它可以在不同的早期版本來完成。如果我知道這是可能的話,我就不會問這個問題(不是每個人都爲你:)聰明) – 2009-08-23 15:08:35