Loading

7-函数

函数基础

  • 定义函数/声明函数
    • def f():
      • print('hello')
  • 调用函数
    • f()
  • 参数
    • def f2(x, y):
  • 函数的作用
    • 封装一个功能(一段代码)

标准函数

  • return
    • 1.返回结果
    • 2.立刻退出函数
    • 3.默认返回None
  • return如果不接返回值,可以用来中止函数

函数参数

  • 实参/形参
    • 实参:函数调用时括号中的参数
    • 形参:函数定义时括号中的参数
  • 参数类型
    • 位置参数/必需参数
    • 默认参数(定义时)
      • def f2(x, y=3):
    • 关键字参数(调用时)
      • def f3(x, y=3, z=4):
        • # z 是关键字参数,给关键字z传参
        • f3(10, z=30) # 10 3 30
    • 可变参数/不定长参数
      • *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
        • def f4(x, y, args):
          • print(x, y, args)
      • kwargs:(keyword arguments)可以接收任意多个(0~n)关键字参数,得到的值是一个字典
        • def f5(x, y, kwargs):
          • print(x, y, kwargs)
      • 接收任意参数
        • def f7(*args, **kwargs):
          • print(args, kwargs)

匿名函数lambda

  • f2 = lambda x: x*x
    • person_list.sort(key=lambda x: x['age'], reverse = True)

值传递问题

  • 值类型:简单的赋值,没有关联

  • 引用类型:赋值的同时会有关联,深拷贝解决。

    • l1 = [1, 3 ,4 , 2]
    • l2 = l1
    • l2[0] = 100
    • print((l1, l2)) # ([100, 3, 4, 2], [100, 3, 4, 2])
  • 函数中参数:值类型和引用类型的区别

    • def f(n, m):  # n=a, m=b
          # pass  # 空函数
          n += 1
          m['age'] += 1
          print(n, m)
      a = 10
      b = {'age': 10}
      f(a, b)  # 11 {'age': 11}
      print(a, b)  # 10 {'age': 11}
      
posted @ 2020-11-19 17:28  lotuslaw  阅读(96)  评论(0编辑  收藏  举报