来自 生活动态 2019-08-24 20:57 的文章
当前位置: 9778818威尼斯官网 > 生活动态 > 正文

单反数码相机卡片机便携三脚架,函数表明

配置参数

  • 适用机型:通用
  • 型号:三脚架银色
  • 品牌:goodweather 天气不错
  • 类型:摄像类

查看完整参数>>

1

7

1

3

y = 2

4

原来,L 指向了可变对象 [],当你调用函数时,L 的内容发生了改变,默认参数的内容也会跟着变,也就是,当你第一次调用时,L 的初始值是 [],当你第二次调用时,L 的初始值是 ['END'],等等。

>>>

>>> def add(x, y, z):

15

10

9

x = 1

4

8

25

y = 2

7

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

11

3

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

...    sum = v

10

Traceback (most recent call last):

args = (4, 5, 6)

1

8

1

17

>>> add_to_list(['a', 'b', 'c'])    # 没啥问题

{}

2

5

3

5

默认参数

8

['END', 'END', 'END']

可变参数

...

8

2

>>> dict1 = {'x': 1}

为啥呢?我们在调用函数的时候没有传递参数,那么就默认使用 L=[],经过处理,L 应该只有一个元素,怎么会出现调用函数两次,L 就有两个元素呢?

7

在 Python 中,定义函数和调用函数都很简单,但如何定义函数参数和传递函数参数,则涉及到一些套路了。总的来说,Python 的函数参数主要分为以下几种:

18

4

10

关键字参数

6

2016-12-01

6

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

11

kwargs = {'u': 6, 'v': 7}

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

6

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

z = 3

File "", line 1, in

3

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

4

5

6

9

3

10

Traceback (most recent call last):

12

2

>>> add(1, 2)       # 传递 2 个参数

TypeError: add() takes exactly 2 arguments (0 given)

29

Python: 函数参数魔法

['a', 'b', 'c', 'END']

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

默认参数要放在所有必选参数的后面

   print 'x =', x

4

9

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

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

10

11

...     sum = 0

>>> add(x=1)         # x=1 => kwargs={'x': 1}

7

10

7

   print 'kwargs =', kwargs

2

TypeError: add() takes exactly 2 arguments (1 given)

x = 1

6

...

>>> def add_to_list(L=[]):

3

...    sum = i

参数组合

...     print x y z

8

4

7

6

2

比如,定义一个包含上述四种参数的函数:

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

6

可变参数允许你将不定数量的参数传递给函数,而关键字参数则允许你将不定长度的键值对, 作为参数传递给一个函数。

函数参数

6

0

...

1

5

7

3

numbers: (1, 2)

10

... return sum

21

args = ()

6

y = 2

numbers: (1,)

13

1

args = (4, 5)

numbers: ()

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

和可变参数类似,我们也可以使用 **kwargs 的形式来调用函数,比如:

...     print x y

4

2

8

11

2

在调用函数的时候,Python 会自动按照参数位置和参数名把对应的参数传进去。让我们看看:

4

...     print 'numbers:', numbers

9

3

13

1

9

>>> func(1, 2, 3)                  # x=1, y=2, z=3

12

>>> a = [1, 2, 3]

>>> add(a[0], a[1], a[2])    # 这样传递参数很累赘

22

1

28

1

8

z = 0

2

*args 和 **kwargs 是 Python 的惯用写法。

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

2

必选参数

2

看看例子:

26

['END', 'END']

5

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

默认参数

6

5

27

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

7

2

3

8

{'x': 1}

... for k, v in kwargs.items():

再看一个例子:

6

11

20

本文由9778818威尼斯官网发布于生活动态,转载请注明出处:单反数码相机卡片机便携三脚架,函数表明

关键词: