函数的补充

  1. 默认值参数的一个考点

    • 当你的默认值参数是可变的数据类型,那么你要当心了

      def func(a,lst=[]):  # 可变数据类型使用的是一个内存空间
          lst.append(a)
          return lst
      print(func(1))   #  [1]
      print(func(2))   #  [1,2]
      print(func(3, []))  # [3]
  2. 函数名的应用

    函数名是一个特殊的变量,它具有变量的特点

    • 函数名指向的是函数的内存地址,这个内存地址加上()就可以运行函数.

    • 函数名是一个变量,可以赋值运算

      def func():
          print(666)
      print(func)
      a = func
      a()   # 也可以运行函数func
    • 函数名可以作为容器类类型的元素

      def func():
          print(666)
      lst = [func,func,func,func]
      lst[1]()
      for el in lst:
          el()
    • 函数名可以作为函数的实参传进去

      def func1():
          print('in func1')
      def func2(argv)
          argv()
          print('in func2')
      func2(func1)
    • 函数名可以作为函数的返回值

      def func1():
          print('in func1')
      def func2(argv):
          print('in func2')
          return argv
      ret = func2(func1)
      ret()

猜你喜欢

转载自www.cnblogs.com/zyyhxbs/p/11051790.html