社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

详解Python序列解包(4)

Python小屋 • 9 年前 • 614 次点击  

本文主要介绍调用函数传递参数时序列解包的用法。在定义函数时在形参前面加2个星号**表示可变长度参数,可以收集若干关键参数形式的参数传递并存放到一个字典之中。与之相对,如果实参是个字典,可以使用两个星号**对其进行解包,会把字典转换成类似于关键参数的形式进行参数传递。对于这种形式的序列解包,要求实参字典中的所有键都必须是函数的形参名称,或者与函数中两个星号的可变长度参数相对应。

# 要解包的字典

>>> p = {'a':1, 'b':2, 'c':3}

# 带有位置参数和默认值参数的函数

>>> def f(a, b, c=5):

        print(a, b, c)

>>> f(**p)

1 2 3

# 带有多个默认值参数的函数

>>> def f(a=3, b=4, c=5):

        print(a, b, c)

# 对字典元素进行解包

>>> f(**p)

1 2 3

# 接收字典形式可变长度参数的函数

>>> def demo(**p):

        for item in p.items():

            print(item)

>>> p = {'x':1, 'y':2, 'z':3}

# 对字典元素进行解包

>>> demo(**p)

('y', 2)

('z', 3)

('x', 1)


--------------我是分割线-------------

相关阅读:

详解Python序列解包

详解Python中的序列解包(2)

详解Python序列解包(3)


--------------我是分割线-------------

“Python小屋”公众号近期主要活动:

1、Python师资培训班:8月6日-12日,济南,面向全国高校老师和企业朋友,通知详见关于举办2017年暑期全国高校教师 “Python编程及应用”培训班通知,赠送Python教材2本、Python教学PPT超过1600页,Python教学视频140集,Python教学案例300个,以及教学大纲、教案、考试题库等全套资源。补充说明:如果不需要安排住宿的话,5天学费2100元(含午餐)。



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/3tr1KKkR6N
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2581