V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
nooper
V2EX  ›  Python

发现了一个 python 代码风格写的非常的。。。

  •  
  •   nooper · 2014-06-28 23:16:03 +08:00 · 6798 次点击
    这是一个创建于 3800 天前的主题,其中的信息可能已经有所发展或是发生改变。
    try 没有catch,直接finally,
    finally 里面直接pass。
    from __future__ import absolute_import as _init
    然后再下面有定义,
    def _init():
    pass
    然后居然代码里面有id 关键保留字。
    严重缺少注释。。
    比如定义 a ="ggg"; b ="bbb"; c="ccc";
    里面一堆分号。
    严重阵亡了。
    居然还有20多个星。
    这个居然能这么封装。。。。。无力吐槽。
    class InstrumentMarginRate(BaseStruct): #合约保证金率
    def __init__(self, InstrumentID='', InvestorRange=IR_All, BrokerID='', InvestorID='', HedgeFlag=HF_Speculation, LongMarginRatioByMoney=0.0, LongMarginRatioByVolume=0.0, ShortMarginRatioByMoney=0.0, ShortMarginRatioByVolume=0.0, IsRelative=0):
    self.InstrumentID = '' #合约代码, char[31]
    self.InvestorRange = '' #投资者范围, char
    self.BrokerID = '' #经纪公司代码, char[11]
    self.InvestorID = '' #投资者代码, char[15]
    self.HedgeFlag = '' #投机套保标志, char
    self.LongMarginRatioByMoney = 'Ratio' #多头保证金率, double
    self.LongMarginRatioByVolume = 'Money' #多头保证金费, double
    self.ShortMarginRatioByMoney = 'Ratio' #空头保证金率, double
    self.ShortMarginRatioByVolume = 'Money' #空头保证金费, double
    self.IsRelative = 'Bool' #是否相对交易所收取, int


    我朋友说用他的 ctp,我已经对这种代码风格阵亡了。
    我告诉他要修正他的代码,遵循pep8规范。修复bug。这哥们直接close issues.
    算了。。。,为了这个还和朋友大吵一架,告诉我他不是程序员。做金融的也不能这样的水准啊。麻烦大家告诉他python代码应该怎么写。
    我干脆自己写一个CTP封装算了。完善的文档和demo。
    做金融的都是这水准真丢人。
    要是程序员,更丢人。

    github: https://github.com/lovelylain/pyctp
    12 条回复    2014-06-29 19:32:26 +08:00
    heliar
        1
    heliar  
       2014-06-28 23:18:47 +08:00
    。。。用python写c么
    xiandao7997
        2
    xiandao7997  
       2014-06-28 23:19:53 +08:00
    做 .NET,以前有个同事写了个类,命名空间是 System.Web ……
    nooper
        3
    nooper  
    OP
       2014-06-28 23:21:35 +08:00
    @heliar 受够了这种写的这么,简直就是误人子弟。
    heliar
        4
    heliar  
       2014-06-28 23:25:50 +08:00
    @nooper 估计他的要求是能跑起来就好。。。
    nooper
        5
    nooper  
    OP
       2014-06-28 23:27:01 +08:00
    @heliar .........一堆bug。
    nooper
        6
    nooper  
    OP
       2014-06-28 23:35:33 +08:00
    。。。。无语。
    yuankui
        7
    yuankui  
       2014-06-29 00:33:33 +08:00
    命名可以显示素质问题
    ericls
        8
    ericls  
       2014-06-29 11:28:09 +08:00
    要是接的单子这样写代码还行
    开源项目这样写就有点奇怪了
    nooper
        9
    nooper  
    OP
       2014-06-29 11:47:39 +08:00 via iPhone
    @ericls 这种病怎么治
    jjx
        10
    jjx  
       2014-06-29 17:56:37 +08:00
    为这个同别人吵, 能说lz情商不高吗, 你可以不喜欢, 但为这个生气犯的着吗?又不是你的下属

    1. 用id做变量名, 个人觉的没有什么不妥当. 数据库的主键都是id, 每次都写 sale_order_id, purchase_order_id, 太长,_id不好看

    2.命名法 pascal/驼峰,如果偶尔写python,本身以java/c#为主的, 没什么问题,pyqt/wx/twisted都是这样的,写类似的程序时通常还会改变自己原来的命名法去顺应风格

    3. ;分隔几个短语句, 个人认为也没有什么问题

    不是说风格不重要,也不是说不要在追求风格 ,只是对于某些人某些事情而言, 风格不是写代码的全部,没必要较真
    nooper
        11
    nooper  
    OP
       2014-06-29 18:51:23 +08:00
    @jjx lol.u just don't understand what is pythonic.
    manoon
        12
    manoon  
       2014-06-29 19:32:26 +08:00
    楼主好当真。。。。

    他爱听不听,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1124 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:35 · PVG 07:35 · LAX 15:35 · JFK 18:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.