python怎么加入函数_python中函数前添加*以及**的用法

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

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

[注意]

[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 wcdj

def powersum(power, *args):

'''''Return the sum of each argument raised

to specified power.'''

total=0

for i in args:

total+=pow(i,power)

return total

print 'powersum(2, 3, 4)==', powersum(2, 3, 4)

print 'powersum(2, 10)==', powersum(2, 10)

########

# output

########

powersum(2, 3, 4)==25

powersum(2, 10)==100

[字典的情形]

#! /usr/bin/python

# Filename: dict_function.py

#2010-7-19wcdj

def findad(username,**args):'''''find address by dictionary'''print'Hello:', usernamefor name, address inargs.items():

print'Contact %s at %s' %(name, address)

findad('wcdj', gerry='gerry@byteofpython.info', /wcdj='wcdj@126.com', yj='yj@gmail.com'

在gvim中的输出结果:

45214_1279524186pXo8.jpg

=========================补充============================================================

print中参数加星号的用法:

s = (1,2,3,4)#是为一个元组

print(*s)

结果为:1 2 3 4

也就是说print把这个参数的组成元素全部输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值