V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xujunfu
V2EX  ›  问与答

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

  •  
  •   xujunfu · 2016 年 8 月 26 日 · 4499 次点击
    这是一个创建于 3432 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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