我們正在考慮使用Python(IronPython,但我認爲這不相關)爲另一個控制一臺設備的應用程序提供了一種「宏」支持。爲Python函數參數提供額外裝飾/元數據的好方法是什麼?
我們想用Python語言編寫相當簡單的功能,這需要幾個參數 - 這些將是一樣的東西時間和溫度和位置。不同的函數需要不同的參數,主應用程序將包含用戶界面(類似於屬性網格),它允許用戶爲Python函數參數提供值。
因此,例如功能1可能需要一段時間和溫度,以及函數2可能採取的位置和幾次。
我們希望能夠從Python代碼中動態構建用戶界面。很容易做的事情是在模塊中找到函數列表,並使用inspect.getargspec來獲取每個函數的參數列表。
但是,只是一個參數名稱列表不夠理想 - 理想情況下,我們希望能夠包含關於每個參數的更多信息 - 例如,它是'type'(高級類型 - 時間,溫度等等,而不是語言級別的類型),也可能是一個「友好名稱」或描述。
所以,問題是,什麼是將這種信息功能的好「Python化」的方式。
兩種可能性我以爲是:
使用參數的嚴格的命名約定,然後從它們的名字推斷出他們的東西(使用getargspec牽強)
創造我們自己docstring元語言(可能比CSV稍微多一點)並使用文檔字符串作爲我們的元數據。
因爲Python似乎爲構建腳本到大型應用很受歡迎,我想這是一個解決的問題有一些共同的約定,但我一直沒能找到他們。
,您可以使用函數註釋:http://www.python.org/dev/peps/pep-3107/ – unutbu 2010-08-31 16:25:26
py.test使用您提到的爲每個測試指定數據的第一種方法。他們的情況很好。 – 2010-08-31 16:27:03