博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python在函数中使用*和**接收元组和列表
阅读量:6762 次
发布时间:2019-06-26

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

当要使函数接收元组或字典形式的参数 的时候,有一种特殊的方法,它分别使用*和**前缀 。这种方法在函数需要获取可变数量的参数的时候特别有用。

[注意] 
[1] 由于在args变量前有*前缀 ,所有多余的函数参数都会作为一个元组存储在args中 。如果使用的是**前缀 ,多余的参数则会被认为是一个字典的健/值对 。
[2] 对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用func(1, 2, 3) ,args就表示(1, 2, 3)这个元组 。
[3] 对于def func(**args):,**args表示把参数作为字典的健-值对存储在dict(字典)args里面。例如,调用func(a='I', b='am', c='wcdj') ,args就表示{'a':'I', 'b':'am', 'c':'wcdj'}这个字典 。
[4] 注意普通参数与*和**参数公用的情况,一般将*和**参数放在参数列表最后。
[元组的情形] 

#! /usr/bin/python# Filename: tuple_function.py# 2010-7-19 wcdjdef powersum(power, *args):    '''Return the sum of each argument raisedto specified power.'''        total=0    for i in args:        total+=pow(i,power)    return totalprint 'powersum(2, 3, 4)==', powersum(2, 3, 4)print 'powersum(2, 10)==', powersum(2, 10)######### output########powersum(2, 3, 4)==25powersum(2, 10)==100 

 

[字典的情形]

 

#! /usr/bin/python# Filename: dict_function.py# 2010-7-19 wcdjdef findad(username, **args):    '''find address by dictionary'''    print 'Hello: ', username    for name, address in args.items():        print 'Contact %s at %s' % (name, address)findad('wcdj', gerry='gerry@byteofpython.info', /        wcdj='wcdj@126.com', yj='yj@gmail.com'

 

在gvim中的输出结果:

gvim中的输出结果

 

http://blog.csdn.net/delphiwcdj/article/details/5746560

你可能感兴趣的文章
经典算法-链表(golang)
查看>>
leetcode — search-a-2d-matrix
查看>>
魔板 bfs() 预处理,记录每种状态。然后状态置换,(重点要用到全排列的hash记录状态)...
查看>>
构建之法课后作业第一次作业(15个题选一个)
查看>>
操作redis方法
查看>>
C语言函数
查看>>
Python3-异常处理
查看>>
Python-简单打印进度条
查看>>
【02】天气查询应用(第二课)
查看>>
监听微信返回按钮
查看>>
第二次实验报告
查看>>
HDU ACM 3790 最短路径问题
查看>>
python生成器
查看>>
linux 安装 ftp
查看>>
python 监控FTP目录下的文件个数
查看>>
MapInfo格式转arggis格式
查看>>
Network - SSL/TLS的基本概念
查看>>
python学习之老男孩python全栈第九期_day012知识点总结
查看>>
pandas学习(数据分组与分组运算、离散化处理、数据合并)
查看>>
geeksforgeeks-Array-Rotate and delete
查看>>