python 代码居然被写成类 C 代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xujunfu
V2EX    问与答

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

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

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

     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.__contais__("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     1460 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 16:49 PVG 00:49 LAX 09:49 JFK 12:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86