python--基础学习(五)参数位置传递、关键字传递、包裹传递及解包裹(*args与**kwargs)
2016-11-14 09:07
627 查看
#!/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--基础学习(五)参数位置传递、关键字传递、包裹传递及解包裹
- python中参数传递之位置传递、关键字传递、包裹传递与解包裹
- Python 基础 —— 可变参数 *args 与 关键字参数 **kwargs
- Python函数中*args和**kwargs来传递变长参数的用法
- Unity3D基础学习 NGUI Example 7-Scroll View(Panel)制作固定包裹栏,点击传递参数显示物体
- Python3基础 str format 位置参数与关键字参数
- Python函数中*args和**kwargs来传递变长参数的用法
- Python新手学习基础之函数-关键字参数
- Python函数参数传递的*args和**kwargs
- python参数(位置参数,默认参数,*args,**kwargs)
- Python新手学习基础之函数-关键字参数
- [Python学习笔记-004] 可变参数*args和**kwargs
- python args kwargs 传递参数的区别
- Python 中的位置参数和关键字参数分析
- python学习系列之python装饰器基础(6)---装饰器加参数
- python学习笔记-(13)python中的函数参数传递
- python学习之--包裹传递和解包裹
- python函数参数*args**kwargs用法实例
- JavaScript基础学习<三>参数传递
- jsp基础学习(六)--jsp传递参数方法