關於Python args 與 **kwargs

首先Python函數參數可以是多個可選的
比如args傳進來一個list可以遍歷裏面的非必要參數
比如**kwargs傳進來一個dict可以根據參數名來找到對應的value
然後遇到的問題是,有時候包太多層太複雜的情況時,或者開發者根本不知道別人傳進來啥參數時,就幫着繼續傳,導致最後這個kwargs裏面混雜着許多奇怪且不知名的東西,並且可能永遠也沒人用到這個可選參數

於是就從方便變成了被人唾棄

遇到一個情況,**option表示函數的可選參數,因爲傳了太多層,導致很混亂,今天弄了個小功能,結果基類裏的 **option已經包含太多奇怪的東西,大家揚言再加入 **option就殺了我,於是有一個操作可以在我使用的外層提前撈出我想要的可選參數,使得 **option裏的內容不被污染
代碼如下

    def __init__(self, path: str, value:str = 'something', **options):
        super().__init__(path, **options)
        self.value = value

臨時記得筆記,以後有機會再詳細補充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章