Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

xieaotian 发表于 2008-11-19 08:41

Python : 什么是*args和**kwargs?

[size=6][color=Red]Python : 什么是*args和**kwargs? [/color][/size]
先看段代码:[code]def foo(*args, **kwargs):
        print 'args = ', args
        print 'kwargs = ', kwargs
        print '---------------------------------------'
if __name__ == '__main__':
        foo(1,2,3,4)
        foo(a=1,b=2,c=3)
        foo(1,2,3,4, a=1,b=2,c=3)
        foo('a', 1, None, a=1, b='2', c=3)[/code]事实上*args和**kwargs很象C语言中指针类型的形参,那么在python中*args的意思就是通过实参返回一个元组,**kwargs通过实参返回一个字典(这里以变量名作为键,变量值作为值)
以上代码大家运行一下就能看到结果,仔细观察就能体会其中的奥秘了。
本文原创,如果转载请注明出处,python中国版权所有[url]www.okpython.com[/url]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.