python中给函数添加返回字典中的可选键值对

1、

>>> def a(x,y):
    b = {"key1":x,"key2":y}
    return b

>>> a(111,222)
{'key1': 111, 'key2': 222}
>>> a(111,222,333)     ## 多家实参报错
Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    a(111,222,333)
TypeError: a() takes 2 positional arguments but 3 were given
>>> def a(x,y,z):      ## 增加一个形参
    b = {"key1":x,"key2":y}
    if z:
        b["z"] = z
    return b

>>> a(111,222)      ## 少一个实参,报错
Traceback (most recent call last):
  File "<pyshell#104>", line 1, in <module>
    a(111,222)
TypeError: a() missing 1 required positional argument: 'z'
>>> a(111,222,333)
{'key1': 111, 'key2': 222, 'z': 333}
>>> def a(x,y,z = ""):          ## 增加一个形参,同时设为默认参数空值
    b = {"key1":x,"key2":y}
    if z:
        b["z"] = z
    return b

>>> a(111,222)          ## 给两个实参没问题
{'key1': 111, 'key2': 222}
>>> a(111,222,333)      ## 给三个实参
{'key1': 111, 'key2': 222, 'z': 333}
>>> def a(x,y,z = None):     ## 设为空值
    b = {"key1":x,"key2":y}
    if z:
        b["z"] = z
    return b

>>> a(111,222)
{'key1': 111, 'key2': 222}
>>> a(111,222,333)
{'key1': 111, 'key2': 222, 'z': 333}
原文地址:https://www.cnblogs.com/liujiaxin2018/p/14510399.html