博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python *args and * kwargs
阅读量:7226 次
发布时间:2019-06-29

本文共 1048 字,大约阅读时间需要 3 分钟。

最近看python相关书籍或者代码,发现很多比较疑惑的地方:

1.self

这个不解释了,python的自省功能,类的实例访问自身属性和方法,有点儿类似于其他语言中的this。被显示给出,但是无需为参数self赋值,python解释器会自动给self赋值。

2.*args and * kwargs

关于*args and * kwargs的使用看下面几个例子:

>>> def print_everything(*args):        for count,thing in enumerate(args):...         print "%d. %s" %(count, thing)...>>> print_everything('apple', 'banana', 'cabbage')0. apple1. banana2. cabbage

上面这个例子,对*args进行解析的时候用到了“for a, b in enumerate (data)”.  这里data是list或者tuple, a则自动对应index, b自动对应value。

>>> def table_things(**kwargs):...     for name,value in kwargs.items():...         print name, "=", value...>>> table_things(apple = 'fruit', cabbage = 'vegetable')cabbage = vegetableapple = fruit

这个例子中显然参数是一个具有key和value的键值对,访问的时候需要用到“for a, b in dic.items()”.

>>> def print_three_things(a, b, c):...     print "a =", a, "& b =", b, "& c =", c...>>> mylist = ['aardvark', 'baboon', 'cat']>>> print_three_things(*mylist)a = aardvark & b = baboon & c = cat

这个例子比较神奇的,python原来可以自动将参数解析后再与调用的函数匹配。

转载于:https://www.cnblogs.com/zhangjing0502/archive/2012/07/11/2587200.html

你可能感兴趣的文章
Java 集合系列-第八篇-Map架构
查看>>
springmvc 3.2 @MatrixVariable bug 2
查看>>
React-Native PanResponder手势识别器
查看>>
IOS11 光标错位问题
查看>>
如何设计用户登录
查看>>
linux安装mysql5.7.19
查看>>
Zookeeper+ActiveMQ 集群实现
查看>>
加权有向图问题2----多源最短路径问题(Floyd算法)和关键路径算法
查看>>
logback logback.xml常用配置详解(三) <filter>
查看>>
KgMall B2B/B2B2c/C2C版店铺商号初始化
查看>>
Linux内核的ioctl函数学习
查看>>
Liunx Shell入门
查看>>
Thread的中断
查看>>
linux --- 内存管理
查看>>
PostgreSQL
查看>>
CPU 超线程、多核
查看>>
用ASCII码显示string.xml中的特殊字符
查看>>
网站301跳转到新域名
查看>>
codewars020: The Clockwise Spiral 数字顺时针螺旋矩阵
查看>>
ios 下拉刷新
查看>>