我意識到這可能是一個有點奇怪的請求,但我想有一個方法在Python 3中接受任意數量的元組,每個元組都有默認參數。傳遞多個元組與默認參數
我想這樣做的原因是因爲我正在爲我們的團隊編寫腳本功能,並希望用戶的可調用方法易於理解。例如,如果用戶想要調用一個2D繪圖的方法,我想方法參數看起來像這樣:
plot2D(('sweepvar1', start1, stop1, npts1=None, step1=None),
('sweepvar2', start2, stop2, npts2=None, step2=None))
所以用戶調用像這樣
plot2D(('var1', 0.0, 1.0, npts1=101), ('var2', 0.5, 0.6, step2=0.001))
本質上的困難來了因爲如果用戶想要指定多個點或步長來進行測量,我不知道先驗,但我們需要包含這兩個選項。理想情況下,我想避免強制用戶指定兩者,或者創建一個新變量,該變量是用於在npts
和step
之間進行選擇的標誌。
我對default parameters
,*args
和**kwargs
有點熟悉,但我似乎無法想出一個乾淨的解決方案來解決上述問題。
在此先感謝您的幫助!
那麼這些都不是元組,因爲這些包含命名參數... –
看起來更像namedtuples。 –
也許你應該使用自定義對象而不是元組,這樣一切都可以由用戶正確初始化。 –