Discuss / Python / 参数组合,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

参数组合,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

Topic source

有一个疑问,代码中第三个参数c是默认参数值等于0。如果我传参的时候不想给他赋值,就用默认的0。

比如这样调用:f1(1,2,3,kw='kw')实际输出a = 1 b = 2 c = 3 args = () kw = {'kw': 'kw'},希望输出a = 1 b = 2 c = 0 args = (3) kw = {'kw': 'kw'}

上面结果实参3实际匹配给了参数c,那参数c的默认值0是不是就白设置了。就用不上了啊

def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

水人水平

#2 Created at ... [Delete] [Delete and Lock User]

我也有这个疑问,有木有人能解答一下呀

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

你不写kw不就用上了吗?

编程是解决问题,不是为了考你在各种情况下的答案。


  • 1

Reply