加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

10分钟学会 Python 函数基础知识

发布时间:2019-07-19 11:37:26 所属栏目:评测 来源:芒果教你学编程
导读:一、函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语句通过一个函数名称来调用。 有了函数,我们可以在很大程度上减少复制及粘贴代码

可变关键字参数使用**定义,在函数体内,可变关键字参数是一个字典。可变关键字参数的key都是字符串,并且符合标识符定义规范。

  1. def fn(**kwargs): 
  2. print(kwargs) 
  3. dict01 = {'name': 'Laven Liu', 'age': 29} 
  4. fn(**dict01) 
  5. # fn(dict01) 
  6. fn(name='Laven Liu', age=29) 
  7. {'name': 'Laven Liu', 'age': 29} 
  8. {'name': 'Laven Liu', 'age': 29} 

可变位置参数只能以位置参数的形式调用可变关键字参数只能以关键字参数的形式调用可变位置参数必须在可变关键字参数之前

  1. In[18]: def fn(*args, **kwargs): 
  2. ...: print(args) 
  3. ...: print(kwargs)  
  4. ...:  
  5. In[19]: fn(1, 2, 3, a=1, b=2)  
  6. (1, 2, 3)  
  7. {'a': 1, 'b': 2}  
  8. In[20]: def fn(*args, x, y):  
  9. ...: print(args) 
  10. ...: print(x, y)  
  11. ...:  
  12. In[21]: fn(1, 2, 3, 4) 
  13. --------------------------------------------------------------------------- 
  14. TypeError Traceback (most recent call last)  
  15. in ()  
  16. ----> 1 fn(1, 2, 3, 4) 
  17. TypeError: fn() missing 2 required keyword-only arguments: 'x' and 'y' 
  18. In[22]: fn(1, 2, x=3, y=4)  
  19. (1, 2)  
  20. 3 4 

可变参数后置可变参数不和默认参数一起出现

7. 参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是: 必选参数、默认参数、可变参数和关键字参数

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

  1. >>> def func(a, b, c=0, *args, **kwargs): 
  2. ... print('a =', a, 'b =', b, 'c =', c, 'args = ', args, 'kwargs = ', kwargs) 

在函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去。

  1. >>> func(1, 2) 
  2. a = 1 b = 2 c = 0 args = () kwargs = {} 
  3. >>> func(1, 2, c=3) 
  4. a = 1 b = 2 c = 3 args = () kwargs = {} 
  5. >>> func(1, 2, 3, 'a', 'b') 
  6. a = 1 b = 2 c = 3 args = ('a', 'b') kwargs = {} 
  7. >>> func(1, 2, 3, 'a', 'b', x=99) 
  8. a = 1 b = 2 c = 3 args = ('a', 'b') kwargs = {'x': 99} 
  9. >>> 

最神奇的是通过一个tuple和dict,我们也可以调用该函数:

  1. >>> args = (1, 2, 3, 4) 
  2. >>> kwargs = {'x': 99} 
  3. >>> func(*args, **kwargs) 
  4. a = 1 b = 2 c = 3 args = (4,) kwargs = {'x': 99} 

所以,对于任意函数,都可以通过类似func(*args, **kwargs)的形式调用它,无论它的参数是如何定义的。

8. 参数解构

参数解构发生在函数调用时,可变参数发生函数定义的时候。参数解构分为两种形式,一种是位置参数解构,另一种是关键字参数解构。

参数结构的两种形式:

位置参数解构,使用一个星号。解构的对象为可迭代对象,解构的结果为位置参数。关键字参数解构,使用两个星号。解构的对象为字典,解构的结果为关键字参数。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读