2-2-00 函数-总结

  1. 函数参数传递的是内存地址。

    • 想重新创建一份数据再传递给参数,可以手动拷贝一份。

    • 特殊:参数是动态参数时,通过*或**传参时,会将数据循环添加到参数中(类似于拷贝一份)

    
         def fun(*args, **kwargs):  
             print(args, kwargs)  
         ​  
         ​  
         fun(*[11, 22, 33], **{"k1": 1, "k2": 2})
    
  2. 函数的返回值也是内存地址。(函数执行完毕后,其内部的所有变量都会被销毁,引用计数器为0时,数据也销毁)

    
     def func():  
         name = [11,22,33]  
         data = name  
           
     func()
    
     def func():  
         name = [11,22,33]  
         return name  
     ​  
     data = func()  
     while True:  
         print(data)
    
    
3.  当函数的参数有默认值 & 默认值是可变类型 & 函数内部会修改内部元素(有坑)
    
     ```python
     # 内部会维护一个列表 [],只要b不传值则始终使用都是这个列表。  
     def func(a,b=[]):  
         b.append(a)
  1. 定义函数写形式参数时可以使用***,执行函数时也可以使用。

  2. 函数名其实也是个变量,他也可以做列表、字典、集合等元素(可哈希)

  3. 函数名可以被重新赋值,也可以做另外一个函数的参数和返回值。

  4. 掌握 print 和 return的区别,学会分析代码的执行流程。

  5. python是以函数为作用域。

  6. 在局部作用域中寻找某数据时,优先用自己的,自己没有就在上级作用域中寻找。

  7. 基于 global关键字可以在局部作用域中实现对全局作用域中的变量(全局变量)重新赋值。

posted @ 2022-10-19 09:35  布丁家的苏苏  Views(6)  Comments(0)    收藏  举报