python 类成员函数的参数问题

今天遇到一个没见过的代码:

class Iface:
  def ping(self, ):                                                                                                                                                                      
    pass                                                                                                                                                                                 

  def say(self, msg):                                                                                                                                                                    
    """
    Parameters:                                                                                                                                                                          
     - msg                                                                                                                                                                               
    """
    pass                                                                                                                                                                                 

这里ping()的参数是以逗号结尾,是指参数为有一个元素的元组吗?

阅读 6.9k
2 个回答

Python的参数本来就是用tuple来实现的。关于这一点,你可以去看看怎么写一个Python C扩展,你就会有很深的了解了,其中PyArg_ParseTuple是一个最常用的API。

补充一下,关于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])* [','])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题