Python论坛  - 讨论区

标题:Re: Re: [python-chinese] 问一下函数参数类型的区别(arg,*args,**argss)

2005年06月10日 星期五 15:54

Qutr qutianrang at gmail.com
Fri Jun 10 15:54:43 HKT 2005

回头要好好看看,记得有一次做项目时候,因为**argss传进来的是字典形式。当时需要字典所以想当然的把它认为成了字典。
高手就是高手呀!

Qutr , qutianrang at gmail.com 
2005-6-10 
----- 收到以下来信内容 ----- 
发件人: limodou 
收件人: python-chinese 
时  间: 2005-06-10, 15:49:22
主  题: Re: [python-chinese] 问一下函数参数类型的区别(arg,*args,**argss)


你弄错了。*arg表示未在函数中列出参数的变量,但它又不是使用=来定义的。**args是表示使用key=value来定义的参数。因此*arg和**args在调用时并不是tuple和dict,而是类似于:

def test(arg, *args, **argss):

test(1, 'a', [], t=2, d='3')

*args为'a', []
**argss为t=2, d='3'

但在函数内部你看到的args就是('a', [])和{'t':2, 'd':'3'}了
这里面有一个转换过程。

因此dict(a=2, b=3)就是使用这种方法来将一个函数式的调用转为了一个dict {'a':2, 'b':3}

在 05-6-10,马剑<honeyday at staffonly.org> 写道:
> 我写了一段试验代码:
> 
> def test(arg,*args,**argss):
> print arg
> print args
> print argss
> 
> if __name__ == '__main__':
> test('z',('a','b'),{'a':'x','b':'y'})
> 
> 但是输出的结果如下:
> 
> z
> (('a', 'b'), {'a': 'x', 'b': 'y'})
> {}
> 
> 为什么第三个参数跑到第二个参数里面去了,组合成一个元组了?
> 
> On Fri, 10 Jun 2005 15:29:44 +0800
> "Qutr"<qutianrang at gmail.com> wrote:
> =================================================================
> > *的传过来的是个元组; **的传过来是个字典。
> > 呵呵!试验一下就知道了。
> >
> > Qutr , qutianrang at gmail.com
> > 2005-6-10
> > ----- 收到以下来信内容 -----
> > 发件人: 马剑
> > 收件人: python-chinese
> > 时 间: 2005-06-10, 15:24:13
> > 主 题: [python-chinese] 问一下函数参数类型的区别(arg,*args,**argss)
> >
> >
> > 我发现python函数的参数有3种写法:直接一个变量名、*变量名、**变量名。
> >
> > 上面三种有什么区别呢?都应该怎么用呢?
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 


-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou
New Google Maillist: http://groups-beta.google.com/group/python-cn
_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050610/523c90df/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号