1 函数的文档注释

  • 在开发中,如果希望给函数添加注释,应该在定义函数的下方,使用连续的三对引号
  • 连续的三对引号之间编写对函数的说明文字
  • 函数调用位置,使用快捷键CTRL + Q可以查看函数的说明信息
  • 注意:因为函数体相对比较独立函数定义的上方,应该和其他代码(包括注释)保留两个空行

    2. 函数的返回值

  • 在程序开发中,有时候,会希望一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理

  • 返回值是函数完成工作后,最后给调用者的一个结果
  • 在函数中使用return关键字可以返回结果
  • 调用函数一方,可以使用变量接收函数的返回结果

注意:return表示返回,后续的代码都不会被执行

  1. def sum2num(num1, num2): """对两个数字的求和"""
  2. return num1 + num2

3.调用函数,并使用 result 变量接收计算结果

  1. result = sum2num(10, 20)
  2. print("计算结果是 %d" % result)

4.不可变和可变的参数

问题 1:在函数内部,针对参数使用赋值语句,会不会影响调用函数时传递的实参变量? —— 不会!

  • 无论传递的参数是可变还是不可变
    • 只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到 外部变量的引用
  • 问题 2:如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部的数据 ```python def demo(num_list):

    print(“函数内部的代码”)

    使用方法修改列表的内容

    num_list.append(9)

    print(num_list)

    print(“函数执行完成”)

gl_list = [1, 2, 3] demo(gl_list) print(gl_list)

  1. <a name="mnFDJ"></a>
  2. ## 5.定义支持多值参数的函数
  3. 有时可能需要**一个函数**能够处理的参数**个数**是不确定的,这个时候,就可以使用**多值参数**
  4. - python中有**两种**多值参数:
  5. - 参数名前增加**一个***可以接收**元组**
  6. - 参数名前增加**两个***可以接收**字典**
  7. - 一般在给多值参数命名时,**习惯**使用以下两个名字
  8. - *args—— 存放**元组**参数,前面有一个*
  9. - **kwargs—— 存放**字典**参数,前面有两个*
  10. - args是arguments的缩写,有变量的含义
  11. - kw是keyword的缩写,kwargs可以记忆**键值对参数**
  12. ```python
  13. def demo(num, *nums, **person):
  14. print(num)
  15. print(nums)
  16. print(person)
  17. # demo(1)
  18. demo(1, 2, 3, 4, 5, name="小明", age=18)

6.元组和字典的拆包(知道)

  • 在调用带有多值参数的函数时,如果希望:
    • 将一个元组变量,直接传递给args
    • 将一个字典变量,直接传递给kwargs
  • 就可以使用拆包,简化参数的传递,拆包的方式是:

    • 元组变量前,增加一个*
    • 字典变量前,增加两个* ```python def demo(args, *kwargs):

      print(args) print(kwargs)

元组变量/字典变量

gl_nums = (1, 2, 3) gl_dict = {“name”: “小明”, “age”: 18}

demo(gl_nums, gl_dict)

拆包语法,简化元组变量/字典变量的传递

demo(gl_nums, *gl_dict)

demo(1, 2, 3, name=”小明”, age=18)

```