今天遇到一个没见过的代码:
class Iface:
def ping(self, ):
pass
def say(self, msg):
"""
Parameters:
- msg
"""
pass
这里ping()的参数是以逗号结尾,是指参数为有一个元素的元组吗?
补充一下,关于Python的形式语法,参见http://docs.python.org/2/reference/grammar.html
其中函数定义部分:
funcdef: 'def' NAME parameters ':' suite
parameters: '(' [varargslist] ')'
varargslist: ((fpdef ['=' test] ',')*
('*' NAME [',' '**' NAME] | '**' NAME) |
fpdef ['=' test] (',' fpdef ['=' test])* [','])
Python的参数本来就是用tuple来实现的。关于这一点,你可以去看看怎么写一个Python C扩展,你就会有很深的了解了,其中PyArg_ParseTuple
是一个最常用的API。