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

2016 年 8 月 26 日
 xujunfu

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

  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);
4582 次点击
所在节点    问与答
20 条回复
2225377fjs
2016 年 8 月 26 日
业务代码 写成这样算是挺工整负责的,分号好像不影响啥吧,你不写不就是了啊。。。
xujunfu
2016 年 8 月 26 日
@2225377fjs , 我知道分号没影响的啊, 但是一看到这样的项目就没有心情,再去修改了,更不要说里面逻辑有多混乱.
fjzjk
2016 年 8 月 26 日
没啥啊,这样不是很好理解。对于我这样 c#的人来说
theoractice
2016 年 8 月 26 日
LZ 为何说这是类 C 代码?除了分号还有其他理由吗?我也觉得跟 c#代码更沾边一些。如果是我跟 3 楼这样的人,心情估计是变好了才对。
9hills
2016 年 8 月 26 日
cltnms , mobiles , cltids 同样的逻辑重复三次好难受
dragonszy
2016 年 8 月 26 日
可能原来只有 8 行,然后 KPI 有一项代码行数,重构成这样了。。
xujunfu
2016 年 8 月 26 日
@9hills , 这只是代码中的一小段, 项目里还有更恐怖的
skydiver
2016 年 8 月 26 日
随便找个代码格式化工具不就解决了?
mdzz
2016 年 8 月 26 日
之前的同学可能是写 PHP 的(逃
levn
2016 年 8 月 26 日
没看出哪里恐怖
Lonely
2016 年 8 月 26 日
不知道楼主写的是啥样,放出来瞧瞧
wolegequ
2016 年 8 月 26 日
so, how to do it in py ?
alexapollo
2016 年 8 月 26 日
%s/;$//g
taozle
2016 年 8 月 26 日
> body_js.__contains__("cltnms")
...
tobyxdd
2016 年 8 月 26 日
不就是有分号么。。至于逻辑我觉得挺清晰易懂的
mcfog
2016 年 8 月 26 日
楼主是没见到过把 C 代码写成类 Python 的样子的吧
htfy96
2016 年 8 月 26 日
不知道你们有没有看过 SymEngine 的代码…愣是把 C++写出了 Python 味:
- &&全用 and 代替
- 所有类都继承一个基类,里面搞了一堆 py 的 magic method
alexapollo
2016 年 8 月 27 日
@htfy96 我还有专门一个库是做这种转换的,但有些地方还是很难做,比如 in 语法
htfy96
2016 年 8 月 27 日
@alexapollo 能分享一下吗?
alexapollo
2016 年 8 月 27 日
@htfy96 可以,我找时间开源出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/301945

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX