def do_ClassDef(self, node):
result = []
name = node.name # Only a plain string is valid.
bases = [self.visit(z) for z in node.bases] if node.bases else []
if getattr(node, 'keywords', None): # Python 3
for keyword in node.keywords:
bases.append('%s=%s' % (keyword.arg, self.visit(keyword.value)))
if getattr(node, 'starargs', None): # Python 3
bases.append('*%s', self.visit(node.starargs))
if getattr(node, 'kwargs', None): # Python 3
bases.append('*%s', self.visit(node.kwargs))
if bases:
result.append(self.indent('class %s(%s):\n' % (name, ','.join(bases))))
else:
result.append(self.indent('class %s:\n' % name))
for z in node.body:
self.level += 1
result.append(self.visit(z))
self.level -= 1
return ''.join(result)
# 2: FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list)
# 3: FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list,
# expr? returns)
评论列表
文章目录