python列表前加星号是什么_元组的reference前加个星号是什么意思?

pixbuf = Gdk.pixbuf_get_from_window(rootwin, 0, 0, screen.width(), screen.height())

调用(caller)

func(*sequence) Pass all objects in sequence as individual positional arguments

seq = [1,2,3]

func(*seq) -> func(1, 2, 3)

func(**dict) Pass all key/value pairs in dict as individual keyword arguments

dict = {'a' = 1, 'b' = 2}

func(*dict) -> func(a = 1, b = 2)

函数定义的

def func(*name) Matches and collects remaining positional arguments in a tuple

func(1, 2, 3) -> name = [1, 2, 3]

def func(**name) Matches and collects remaining keyword arguments in a dictionary

func(a = 1, b= 2) -> dict = {'a' = 1, 'b' = 2}

可参考Chapter 18. Arguments

python里星号有两种意思

1. 定义函数时

一般情况下,函数的参数接受指定个数的参数,比如

def func(a, b, c):

print a, b, c

推荐一篇post:Understanding '*', '*args', '**' and '**kwargs'

>>> def test(*args, **kwargs):

... print args, kwargs

>>>a={"a":1, "b":2}

>>> test(a)

({'a': 1, 'b': 2},) {}

>>> test(*a) #这里等同于test('a', 'b')

('a', 'b') {}

>>> test(**a) #这里等同于test(a=1, b=2)

() {'a': 1, 'b': 2}

一个星号就是把一个序列拆解传入,如果变量本身是字典,会退化成key的序列。

两个星号就是把key-value拆解传入。

姑且就当是语法糖吧。

搬运工:1.2 解压可迭代对象赋值给多个变量

这个解压非常dedicate,具有很多优雅的技巧。

总结如下:

(1)

完全不需要tem中间变量的交换:

a,b =b,a

(2)

有时候,你可能只想解压一部分,丢弃其他的值。对于这种情况Python并没有提供特殊的语法。 但是你可以使用任意变量名去占位,到时候丢掉这些变量就行了。

>>> data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]

>>> _, shares, price, _ = data

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

相关文章

相关视频

网友评论

文明上网理性发言,请遵守 新闻评论服务协议我要评论

立即提交

专题推荐独孤九贱-php全栈开发教程

全栈 100W+

主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

玉女心经-web前端开发教程

入门 50W+

主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

天龙八部-实战开发教程

实战 80W+

主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值