关于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

临时记得笔记,以后有机会再详细补充

posted @ 2019-12-11 18:03  KuroNekonano  阅读(135)  评论(0编辑  收藏  举报