配置参数

  • 适用机型:通用
  • 类型:影室灯,摄像灯,外拍灯

查看完整参数>>

10

8

2

参考资料

默认参数

默认参数是指在定义函数的时候提供一些默认值,如果在调用函数的时候没有传递该参数,则自动使用默认值,否则使用传递时该参数的值。

4

numbers: ()

[‘END’, ‘END’]

在调用函数时,我们可以给该函数传递任意个参数,包括 0 个参数:

3

5

3

>>>

小结

11

>>> def add(x, y=1, z):      # y
是默认参数,必须放在所有必选参数的后面

1

>>> add()                 # 啥都没传,不行

{‘x’: 1}

   print ‘args =’, args

10

args = ()

>>> func(1, 2, 3, 4, 5, u=6, v=7)   # args = (4, 5), kwargs =
{‘u’: 6, ‘v’: 7}

5

9

7

args = ()

kwargs = {}

y = 2

[‘END’, ‘END’, ‘END’]

… return x + y + z

Traceback (most recent call last):

10

1

>>> b = (4, 5, 6)

y = 2

>>> func(1, 2, 4, u=6, v=7)        # args = (), kwargs = {‘u’:
6, ‘v’: 7}

10

15

1

3

6

8

30

x = 1

z = 4

7

27

>>> add(*a)                  # 使用 *a,相当于上面的做法

… return sum

5

7

1

10

可变参数

>>> def sum(**kwargs):               # 函数参数是关键字参数

5

8

我们还可以通过下面的形式来传递参数:

>>> add_to_list()                   #
没有传递参数,使用默认值,也没啥问题

1

再来看看为什么默认参数应该使用不可变对象。

18

7

4

2016-12-01

关键字参数

8

上面的 * 表示任意参数,实际上,它还有另外一个用法:用来给函数传递参数。

z = 0

13

>>> add(1, 2, 3)            # 1+2+3

8

>>> add(1, 2)               # 没有传递 z,自动使用 z=1,即
1+2+1

y = 2

可以看到,默认参数使用起来也很简单,但有两点需要注意的是:

关键字参数

7

3

…    sum += v

6

8

默认参数

… return x + y + z

在某些情况下,我们在定义函数的时候,无法预估函数应该制定多少个参数,这时我们就可以使用可变参数了,也就是,函数的参数个数是不确定的。

[1, 2, 3, ‘END’]

11

默认参数应该使用不可变对象

25

12

args 和 *kwargs · Python进阶

13

24

6

>>> add(*b)                  # 对元组一样适用

9

…     print x + y

>>> dict1 = {‘x’: 1}

应该使用不可变对象作为函数的默认参数。

11

8

2

…     return sum

29

1

args = ()

… for i in numbers:

3

4

再看一个例子:

>>> def add(x, y):        # x, y 是必选参数

我们看一个例子:

6

6

6

>>> def add(x, y, z=1):     # x, y 是必选参数,z
是默认参数,默认值是 1

   print ‘x =’, x

3

args = ()

在上面的代码中,numbers 就是一个可变参数,参数前面有一个 *
号,表示是可变的。在函数内部,参数 numbers 接收到的是一个 tuple。

必选参数

File “”, line 1, in

10

9

>>> sum()                            # 没有参数

3

…     print ‘numbers:’, numbers

>>> func(1, 2, 3, 4, 5, 6)         # x=1, y=2, z=3, args=(4,
5, 6), kwargs={}

0

参数组合在使用的时候是有顺序的,依次是必选参数、默认参数、可变参数和关键字参数。

5

2

4

>>> add_to_list()                   #
没有传递参数,使用默认值,竟出现两个 ‘END’

函数的参数 – 廖雪峰的官方网站

1

kwargs = {}

…     for i in numbers:

可变参数

   print ‘kwargs =’, kwargs

3

3

22

5

12

>>> add(1, 2)             # 数量一致,通过

>>> func(1, 2)                     # 至少提供两个参数,因为 x,
y 是必选参数

1

>>> add(**dict1)        # 使用 **dict1
来传参,等价于上面的做法

12

{}

>>> add(dict1[‘x’], dict1[‘y’], dict1[‘z’])    #
这样传参很累赘

numbers: (1,)

1

9

z = 3

5

>>> add()            # 没有参数,kwargs 为空字典

kwargs = {‘u’: 6, ‘v’: 7}

让我们看看例子:

15

8

23

2

>>> add(*a)

在上面的函数中,L 是一个默认参数,默认值是 [],表示空列表。

比如,下面对默认参数的使用是错误的:

4

6

7

12

>>> a = [1, 2]

8

>>> b = {‘u’: 6, ‘v’: 7}

numbers: (1, 2, 3)

2

>>> def add(**kwargs):

x = 1

10

函数参数