python参数调用

Posted on 2013-11-17 23:36  tutu33  阅读(210)  评论(0)    收藏  举报

下面是文档给出的(python v2.7.3  5.3.4 Calls)

 1 call                 ::=  primary "(" [argument_list [","]
 2                           | expression genexpr_for] ")"
 3 argument_list        ::=  positional_arguments ["," keyword_arguments]
 4                             ["," "*" expression] ["," keyword_arguments]
 5                             ["," "**" expression]
 6                           | keyword_arguments ["," "*" expression]
 7                             ["," "**" expression]
 8                           | "*" expression ["," "*" expression] ["," "**" expression]
 9                           | "**" expression
10 positional_arguments ::=  expression ("," expression)*
11 keyword_arguments    ::=  keyword_item ("," keyword_item)*
12 keyword_item         ::=  identifier "=" expression

 相关摘要:

http://blog.csdn.net/qinyilang/article/details/5484415

上面一篇博客有说到:

参数的次序定义,不用的可以跳过:

1)必须的参数
2)可选的参数
3)过量的位置参数
4)过量的关键字参数

 

不只在定义时这样,在使用函数时也必须这样。

 1 >>> def say(msg, times = 1):
 2     print msg*times
 3 
 4     
 5 >>> say("hello")
 6 hello
 7 >>> say("hello",5)
 8 hellohellohellohellohello
 9 >>> say(times = 3, msg="abc")
10 abcabcabc
11 >>> say(msg="abcd", times = 4)
12 abcdabcdabcdabcd
13 >>> say("a", times = 5)
14 aaaaa
15 >>> say(msg = "a", 5)
16 SyntaxError: non-keyword arg after keyword arg

调用时也不可以在关键字参数后面使用非关键字参数。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3