python 入参函数,python函数入参理解

# -*- coding=utf8 -*-

import sys

#reload(sys)

#sys.setdefaultencoding('utf8')

def _decode(str):

return str.decode('utf8')

def func_test(a1,a2,a3=3,*ax,**adx):

print _decode('位置参数a1:%s' % str(a1))

print _decode('位置参数a2:%s' % str(a2))

print _decode('默认参数a3:%s' % str(a3))

for n,a in enumerate(ax):

print _decode('非关键字变长参数 ax[%i]:%s' % (n,a))

for a in adx.keys():

print _decode('关键字变量参数 %s:%s' % (a,adx[a]))

print _decode('认识非关键字变长参数 *ax:')

print ax

print type(ax)

#print '*ax与ax是否相同:'

#print *ax==ax

print _decode('认识关键字变量参数 **adx:')

print adx

print type(adx)

#print '**adx与adx是否相同:'

#print **adx==adx

#func_test('albert','bison',a3='carl',a4='donald',a5='eve')

'''位置参数a1:albert

位置参数a2:bison

默认参数a3:carl

关键字变量参数 a5:eve

关键字变量参数 a4:donald

认识非关键字变长参数 *ax:

()

认识关键字变量参数 **adx:

{'a5': 'eve', 'a4': 'donald'}

'''

#func_test('albert','bison',3,('carl','donald'),a5='eve')

'''

重要:调用参数时使用元组做入参,那么这个元组是作为一个参数项,而不是整个非关键字变长参数

位置参数a1:albert

位置参数a2:bison

默认参数a3:3

非关键字变长参数 ax[0]:('carl', 'donald')

关键字变量参数 a5:eve

认识非关键字变长参数 *ax:

(('carl', 'donald'),)

认识关键字变量参数 **adx:

{'a5': 'eve'}

'''

#func_test('albert','bison',('carl','donald'),'frank','goul',a5='eve')

'''

同上

位置参数a1:albert

位置参数a2:bison

默认参数a3:('carl', 'donald')

非关键字变长参数 ax[0]:frank

非关键字变长参数 ax[1]:goul

关键字变量参数 a5:eve

认识非关键字变长参数 *ax:

('frank', 'goul')

认识关键字变量参数 **adx:

{'a5': 'eve'}

'''

#func_test('albert','bison','carl','donald','frank','goul',{'a5':'eve','a6':'howard'})

'''

道理同上,关键字变量参数只接受arg=val这种输入

位置参数a1:albert

位置参数a2:bison

默认参数a3:carl

非关键字变长参数 ax[0]:donald

非关键字变长参数 ax[1]:frank

非关键字变长参数 ax[2]:goul

非关键字变长参数 ax[3]:{'a5': 'eve', 'a6': 'howard'}

认识非关键字变长参数 *ax:

'donald', 'frank', 'goul', {'a5': 'eve', 'a6': 'howard'})

type 'tuple'>

认识关键字变量参数 **adx:

}

type 'dict'>

'''

l=('albert','billy','carl','dodge','eve','frank')

m=('hermit','ivy','john')

#func_test(l,m,'oneil','peter',v='vicky')

'''位置参数a1:('albert', 'billy', 'carl')

位置参数a2:('hermit', 'ivy', 'john')

默认参数a3:oneil

非关键字变长参数 ax[0]:peter

关键字变量参数 v:vicky

认识非关键字变长参数 *ax:

('peter',)

认识关键字变量参数 **adx:

{'v': 'vicky'}

'''

#func_test('oneil','peter',*l,v='vicky')

'''位置参数a1:oneil

位置参数a2:peter

默认参数a3:albert

非关键字变长参数 ax[0]:billy

非关键字变长参数 ax[1]:carl

关键字变量参数 v:vicky

认识非关键字变长参数 *ax:

('billy', 'carl')

认识关键字变量参数 **adx:

{'v': 'vicky'}

'''

#func_test(*l,v='vicky')

'''

位置参数a1:albert

位置参数a2:billy

默认参数a3:carl

关键字变量参数 v:vicky

认识非关键字变长参数 *ax:

()

认识关键字变量参数 **adx:

{'v': 'vicky'}

'''

#func_test(*(l,m))

'''位置参数a1:('albert', 'billy', 'carl', 'dodge', 'eve', 'frank')

位置参数a2:('hermit', 'ivy', 'john')

默认参数a3:3

认识非关键字变长参数 *ax:

()

认识关键字变量参数 **adx:

{}

'''

n=l+m

#func_test(*n)

'''位置参数a1:albert

位置参数a2:billy

默认参数a3:carl

非关键字变长参数 ax[0]:dodge

非关键字变长参数 ax[1]:eve

非关键字变长参数 ax[2]:frank

非关键字变长参数 ax[3]:hermit

非关键字变长参数 ax[4]:ivy

非关键字变长参数 ax[5]:john

认识非关键字变长参数 *ax:

('dodge', 'eve', 'frank', 'hermit', 'ivy', 'john')

认识关键字变量参数 **adx:

{}

'''

nn=l+m+('zed',)

func_test(*nn)

'''

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值