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}
      

作者:lotuslaw

出处:https://www.cnblogs.com/lotuslaw/p/14006843.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   lotuslaw  阅读(98)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示