說我有一些很長的功能module.my_function
這件事情是這樣的:Python的 - 使用外部功能類的方法
擁有大批指定參數和關鍵字參數的個數。我希望此功能既可作爲模塊module
的一部分使用,也可作爲myClass
的類方法使用。該函數的代碼將保持完全相同,但在myClass
中,一些關鍵字參數可能採用不同的默認值。
這樣做的最好方法是什麼?以前我是做這樣的事情:
class myCLass(object):
def __init__(self,...
def my_function(self, param1,param2,param3='hello',param4='qaz',param5=['baz'],...):
module.my_function(param1,param2,param3=param3,param4=param4,param5=param5,...)
這似乎有點傻寫所有這些論點,很多時候,尤其是在一個非常大的數量的參數。我也考慮過在類方法中使用類似module.my_function(**locals())
的東西,但是我不知道如何處理self
參數,我不知道這是否會導致其他問題。
我可能只是複製粘貼功能的完整代碼,但這並不似乎真的非常有效,當一切正在改變是幾個默認值,併爲my_function
代碼非常長。有任何想法嗎?
是否有一個原因,所有的關鍵字參數的個數必須是明確的,你不能只用kwargs? – James
原因可能是我沒有經歷過編碼器......我如何在這種情況下使用kwargs並將一些默認值設置爲不同的東西?在上面的例子中說3-5是我正在改變的...我會只指定參數1-5,其餘的使用kwargs? – dieggsy