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

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

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

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

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

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

© 2021 V2EX