函数进阶

CM Lv3

函数进阶

1.函数多返回值

语法:

1
2
3
4
def test_return():
return 1,2

x,y = test_return()
  • 与c语言不同。Python可以按照返回值的顺序,写对应顺序的多个变量接收即可。变量之间用逗号隔开。支持不同类型的数据return。

2. 函数多种传参方式

2.1 位置参数


这个就是我们之前一直学的东西。

2.2 关键字参数

就是在传参的时候指定好形式参数的名字。

  • 混用的时候,如果位置参数放在后面,就会报错。

2.3 缺省参数

就是相当于默认参数

  • 默认参数必须放在最后,放在前面会报错。

2.4 不定长参数

  • 位置参数的不定长,就是说参数的个数可以是任意的。
  • 参数那边必须加一个*号标志一下。

  • 关键字传递的不定长要两个*号。
  • 出入的参数的书写格式必须是键值对
  • 传递进去的参数就会作为一个字典存在。相当于**kwaargs就是一个字典对象了。(kwargs也就是 key - words)

2.3 函数作为参数传递

之前的参数都是数据。

现在就是把函数本身作为一个参数传入另外一个函数。

  • 这其实是计算逻辑的传递,而不是数据的传递。任何逻辑都可以自行定义并且作为函数传入。函数作为参数传入的本质是传入这个函数的代码逻辑。

  • 普通的数据传入是,逻辑已经确定了,只是数据不确定。函数作为数据传入,它指的是计算的数据已经确定,但是计算数据的逻辑是不确定的。

  • 函数传入的作用:1. 传入计算逻辑,而非传入数据。
    - 个人总结:这里和以前学过的在一个函数中调用另外一个函数是不一样的!!!!因为函数作为参数了,你传入不同的函数进去,数据已经定死了,但是执行的逻辑就变了。记住这里的compute是你传入的函数的别名,传入不同的函数,compute就不同!!

2.4 lambda匿名函数

  • 函数体只能写一行!!不能写多行
  • lambda是不写return语句的,默认是直接return的。

示例:

  • 匿名函数不能重复使用,有什么用呢?只是如果你的函数的代码只有一行,这时候,为了简单,就不用再去重新定义一个函数了。(真实应用中还是很常用的)
  • Title: 函数进阶
  • Author: CM
  • Created at: 2023-07-21 19:36:04
  • Updated at: 2023-07-21 21:02:01
  • Link: https://redefine.ohevan.com/2023/07/21/函数2-0/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments