V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xujunfu
V2EX  ›  问与答

python 代码居然被写成类 C 代码

  •  
  •   xujunfu · Aug 26, 2016 · 4643 views
    This topic created in 3533 days ago, the information mentioned may be changed or developed.

    刚来新公司,被要求接手下面这样的代码(很多语句后面都有分号), 被要求花两天的时间把项目上线,我内心是....,

      if body_js.__contains__("cltnms"):
            cltnms = body_js["cltnms"];
            mobiles = body_js["mobiles"];
            cltids = body_js["cltids"];
    
            cltnms = strip_string(cltnms);
            cltids = strip_string(cltids);
            mobiles = strip_string(mobiles);
    
            if cltnms != "" and cltids != "" and mobiles != "":
    
                mobiles_list = [];
                mobiles_list.append(mobiles);
                param = {"name": cltnms, "id": cltids, "cell": mobiles_list};
    
                p_res = self.proc_data(reqid, appid, erpid, cltids, cltnms, mobiles, param);
                out_res["配偶"] = p_res;
    
            else:
                self.logger.error("配偶信息为空. appid : %s", appid);
    
    20 replies    2016-08-27 16:17:16 +08:00
    2225377fjs
        1
    2225377fjs  
       Aug 26, 2016
    业务代码 写成这样算是挺工整负责的,分号好像不影响啥吧,你不写不就是了啊。。。
    xujunfu
        2
    xujunfu  
    OP
       Aug 26, 2016
    @2225377fjs , 我知道分号没影响的啊, 但是一看到这样的项目就没有心情,再去修改了,更不要说里面逻辑有多混乱.
    fjzjk
        3
    fjzjk  
       Aug 26, 2016
    没啥啊,这样不是很好理解。对于我这样 c#的人来说
    theoractice
        4
    theoractice  
       Aug 26, 2016
    LZ 为何说这是类 C 代码?除了分号还有其他理由吗?我也觉得跟 c#代码更沾边一些。如果是我跟 3 楼这样的人,心情估计是变好了才对。
    9hills
        5
    9hills  
       Aug 26, 2016
    cltnms , mobiles , cltids 同样的逻辑重复三次好难受
    dragonszy
        6
    dragonszy  
       Aug 26, 2016
    可能原来只有 8 行,然后 KPI 有一项代码行数,重构成这样了。。
    xujunfu
        7
    xujunfu  
    OP
       Aug 26, 2016
    @9hills , 这只是代码中的一小段, 项目里还有更恐怖的
    skydiver
        8
    skydiver  
       Aug 26, 2016
    随便找个代码格式化工具不就解决了?
    mdzz
        9
    mdzz  
       Aug 26, 2016
    之前的同学可能是写 PHP 的(逃
    levn
        10
    levn  
       Aug 26, 2016
    没看出哪里恐怖
    Lonely
        11
    Lonely  
       Aug 26, 2016 via iPhone
    不知道楼主写的是啥样,放出来瞧瞧
    wolegequ
        12
    wolegequ  
       Aug 26, 2016
    so, how to do it in py ?
    alexapollo
        13
    alexapollo  
       Aug 26, 2016   ❤️ 1
    %s/;$//g
    taozle
        14
    taozle  
       Aug 26, 2016
    > body_js.__contains__("cltnms")
    ...
    tobyxdd
        15
    tobyxdd  
       Aug 26, 2016
    不就是有分号么。。至于逻辑我觉得挺清晰易懂的
    mcfog
        16
    mcfog  
       Aug 26, 2016
    楼主是没见到过把 C 代码写成类 Python 的样子的吧
    htfy96
        17
    htfy96  
       Aug 26, 2016 via Android
    不知道你们有没有看过 SymEngine 的代码…愣是把 C++写出了 Python 味:
    - &&全用 and 代替
    - 所有类都继承一个基类,里面搞了一堆 py 的 magic method
    alexapollo
        18
    alexapollo  
       Aug 27, 2016
    @htfy96 我还有专门一个库是做这种转换的,但有些地方还是很难做,比如 in 语法
    htfy96
        19
    htfy96  
       Aug 27, 2016 via Android
    @alexapollo 能分享一下吗?
    alexapollo
        20
    alexapollo  
       Aug 27, 2016   ❤️ 1
    @htfy96 可以,我找时间开源出来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3162 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 13:42 · PVG 21:42 · LAX 06:42 · JFK 09:42
    ♥ Do have faith in what you're doing.