python--基础学习(五)参数位置传递、关键字传递、包裹传递及解包裹(*args与**kwargs)
#!/usr/bin/env python # -*- coding: utf-8 -*- # 在定义或者调用参数时,参数的几种传递方式可以混合。基本原则是,先位置,再关键字,再包裹位置,再包裹关键字。 # -------------------------------------------------------------------- # # 位置参数 def func(a, b, c): print a, b, c func(1, 2, 3) abc = [4, 5, 6] func(*abc) # unpacket bc = [7, 8] func(9, *bc) # *args表示接受元组类参数,可以是[任何多个无名参数],它是一个tuple; # **kwargs表示接受字典类参数,它是一个dict。 # 并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前 def tuple_dic(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs tuple_dic(None, *abc, a=10, b='2', c=3) dicts = {"Tom": 99, "Bob": 98, "Lily": 95} tuple_dic(*bc, **dicts) # -------------------------------------------------------------------- # lst_enum = ["lists", "enums", "ranges"] for idx, itm in enumerate(lst_enum, 2): print idx, itm def print_everything(*args): for count, thing in enumerate(args): print('args[{0}]: {1}'.format(count, thing)) print_everything(*abc) def table_things(**kwargs): for name, value in kwargs.items(): print('kwargs[{0}] = {1}'.format(name, value)) table_things(**dicts) print "Tom:", dicts.get("Tom") print "LiLei:", dicts.get("LiLei", None)
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!