写下一个将驼峰式大小写转换为蛇形大小写的python函数吗?

下面给出了将骆驼案转换为蛇案的代码

import re
def convert(name):
      s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
      return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
print convert('JavaBeans')
print convert('JavaStrutsSwing')

输出值

java_beans
java_struts_swing