def format_arguments(self, node):
'''
Format the arguments node.
Similar to AstFormat.do_arguments, but it is not a visitor!
'''
assert isinstance(node,ast.arguments), node
args = [self.raw_format(z) for z in node.args]
defaults = [self.raw_format(z) for z in node.defaults]
# Assign default values to the last args.
result = []
n_plain = len(args) - len(defaults)
# pylint: disable=consider-using-enumerate
for i in range(len(args)):
s = self.munge_arg(args[i])
if i < n_plain:
result.append(s)
else:
result.append('%s=%s' % (s, defaults[i - n_plain]))
# Now add the vararg and kwarg args.
name = getattr(node, 'vararg', None)
if name:
if hasattr(ast, 'arg'): # python 3:
name = self.raw_format(name)
result.append('*' + name)
name = getattr(node, 'kwarg', None)
if name:
if hasattr(ast, 'arg'): # python 3:
name = self.raw_format(name)
result.append('**' + name)
return ', '.join(result)
评论列表
文章目录