• python修改函数命名方式


    在程序中,尽管有一些建议和要求,但是还是有可能会使得程序代码的命名方式不一致,对于函数命名方式不一致,下面的Python程序给出了一种解决方式:

    #! /usr/bin/env python
    #
    coding=utf-8

    # author: ubunoon
    #
    email: netubu # gmail.com
    #
    date: 2011-2-22
    #
    blog: http://www.cnblogs.com/ubunoon
     # http://www.qtrstudio.com/blog

    import re
    import shutil

    func
    = re.compile(r'^def\s(\w+)')
    name
    = re.compile(r'^[a-zA-Z]+(_[a-z])*')

    def replaceFuncName(func_name):
    while '_' in func_name:
    value
    = name.search( func_name )
    if value is not None:
    k
    = value.groups()[0]
    if k is not None:
    func_name
    = func_name.replace(k, k[1].upper())

    return func_name

    def processLine(lines):
    new_lines
    = []
    for line in lines:
    value
    = func.match(line)
    if value is not None:
    func_name
    = value.groups()[0]
    value
    = name.match( func_name )
    new_func_name
    = replaceFuncName( func_name)

    line
    = line.replace( func_name, new_func_name )

    new_lines.append(line)

    return new_lines

    if __name__ == '__main__':
    with open(
    'utils.py') as ut:
    new_lines
    = processLine( ut.readlines() )

    shutil.copy(
    'utils.py', 'utils.py.bak' )

    with open(
    'utils.py', 'w') as ut:
    ut.writelines( new_lines )

    修改正则表达式,则很容易修改其他语言中关于函数的定义和类定义。

    有几个小问题:

    1、class下面的方法名不会被修改

    2、如果是Title方式的命名,并不会进行修改Ttile的命名

    # copyright:2011 Copright, All right reserved.

    my pearl:

    http://zjyuezz.cn.alibaba.com/

    /*
    *
    * Copyright (c) 2011 Ubunoon.
    * All rights reserved.
    *
    * email: netubu#gmail.com replace '#' to '@'
    * http://www.cnblogs.com/ubunoon
    * 欢迎来邮件定制各类验证码识别,条码识别,图像处理等软件
    * 推荐不错的珍珠饰品,欢迎订购 * 宜臣珍珠(淡水好珍珠) */
  • 相关阅读:
    【F#】 WebSharper框架
    【F#】 入门代码
    【F#】核心数据多线程处理的首选
    【Jetlang】一个高性能的Java线程库
    【项目管理】 并发服务设计的三种架构
    【Go】为什么用go; Golang Erlang 前世今生
    【Go】 http webserver
    Arcane Numbers 1
    给定4根长度的线段,求组成四边形的最大面积
    #410div2D. Mike and distribution
  • 原文地址:https://www.cnblogs.com/ubunoon/p/1961799.html
Copyright © 2020-2023  润新知