为什么 PEP8 规定函数得全部小写? - V2EX
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
changwei
V2EX    Python

为什么 PEP8 规定函数得全部小写?

  •  
  •   changwei
    cw1997 2017-06-13 14:08:26 +08:00 5002 次点击
    这是一个创建于 3112 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说getUsernameByUid这种函数,写成驼峰看起来就很舒服,和别的编程语言风格也统一,如果写成get_username_by_uid这样多累啊,得多按好几下 shift。

    而且我看 threading 模块也没遵循 PEP8 规范,比如说他的setDeamon方法就是驼峰命名法,这样看的也舒服啊。

    反正我自己写项目都是写驼峰命名,因为之前写 PHP 和 Javascript 都是这样写的,只是看到 IDE 报一堆黄色线有点烦。。。

    28 条回复    2017-06-13 18:05:36 +08:00
    hahaDashen
        1
    hahaDashen  
       2017-06-13 14:11:56 +08:00
    我一般都 Get_Username_By_UID 这样写怎么破 XD
    hjzx050935
        2
    hjzx050935  
       2017-06-13 14:12:30 +08:00
    get_username_by_uid 这个如果写成 getUsernameByUid 也要用 shift + U/B 好多下= =,少打字符而已,我比较不习惯用大小写切换
    thekoc
        3
    thekoc  
       2017-06-13 14:13:48 +08:00   3
    一直觉得驼峰看起来很不舒服。。。
    nyanyh
        4
    nyanyh  
       2017-06-13 14:14:22 +08:00
    Go 还规定使用 Tab 缩进呢……
    seancheer
        5
    seancheer  
       2017-06-13 14:16:32 +08:00
    从 c 继承过来的。
    akira
        6
    akira  
       2017-06-13 14:28:29 +08:00
    输入大写字母 一样要按 shift 啦,这样想是不是就平衡了
    AnyISalIn
        7
    AnyISalIn  
       2017-06-13 14:39:22 +08:00
    @thekoc +1
    jingniao
        8
    jingniao  
       2017-06-13 14:50:15 +08:00
    只有在用类的时候才驼峰,函数用驼峰感觉怪怪的
    geelaw
        9
    geelaw  
       2017-06-13 14:56:29 +08:00 via iPhone
    @hjzx050935 有可能 po 主用的 Caps Lock 改变大小写哦……

    这只是一个风格罢了,C++ STL 也喜欢这种
    fyl00
        10
    fyl00  
       2017-06-13 14:57:51 +08:00
    这东西看喜好,看团队习惯……
    F10Y
        11
    F10Y  
       2017-06-13 15:00:13 +08:00   1
    所以我用 karabiner 对调了_ 和 -
    my101du
        12
    my101du  
       2017-06-13 15:01:57 +08:00   1
    作为一个在 Laravel 和 Wordpress 之间经常切换的人也表示凌乱。。。其实个人觉得下划线真的比驼峰式在 识别 /反应 这个过程时间更快。
    fy
        13
    fy  
       2017-06-13 15:12:07 +08:00
    PEP8 我记得是说用统一规则就行,小写下划线或者驼峰。

    IDE 给警告可能是开发者的个人倾向吧。

    我是根据语言换风格,怎么看着顺眼怎么来
    bazingaterry
        14
    bazingaterry  
       2017-06-13 15:12:29 +08:00 via iPhone
    在写 Python PHP JS 的表示已经切换自如了...
    timsims
        15
    timsims  
       2017-06-13 15:15:42 +08:00
    找个工具保存时自动格式化就好,对应每种语音一种规则
    Kilerd
        16
    Kilerd  
       2017-06-13 15:39:41 +08:00   1
    PEP8 的做法是这样的 类就用驼峰命名, 函数就用 _ 。

    这样的好处就是,一眼看下来就知道哪个是类,哪个是函数。

    OneTwoThree one_two_three

    不过这种东西就好像缩进用几个空格一样,应人而异的。自己习惯就好,不过呢,如果是团队合作的话,PEP8 可以说是最方便,最稳妥的方法了。

    为了避免拿出游标卡尺,我一般 Python 就是第一层缩进用 4 个空格,第二层用 5 个 , 第三层用 6 个,类推。
    以免自己写出嵌套层数太多的函数 (滑稽
    junnplus
        17
    junnplus  
       2017-06-13 15:50:01 +08:00
    那是你之前是写 PHP 和 Javascript 的,(笑
    这种风格上的写法习惯就好,就像我看驼峰很不舒服
    dd99iii
        18
    dd99iii  
       2017-06-13 16:23:57 +08:00 via iPhone
    看团队吧
    rocksolid
        19
    rocksolid  
       2017-06-13 16:41:55 +08:00
    一个语言一套风格,只是用同一种工具的约定,这样你看别人代码舒服,别人看你的也舒服,当然没这需求自己怎么爽怎么写
    clino
        20
    clino  
       2017-06-13 16:46:21 +08:00
    驼峰读起来比较累因为挤在一起
    lucifer9
        21
    lucifer9  
       2017-06-13 16:57:26 +08:00
    起码可以随便写不算错误啊
    想想看 Go 怎么规定大小写的
    maemual
        22
    maemual  
       2017-06-13 17:11:02 +08:00
    统一风格而已。总要选一种风格的,只不过人家选的是下划线
    flyingghost
        23
    flyingghost  
       2017-06-13 17:26:32 +08:00
    所以我就把 IDE 的 PEP8 naming convention voilation 检查关掉了。
    这个在本机,只针对个人,只是工作习惯问题。
    你要是怼 PEP8,那就上升到宗教问题了!
    di94sh
        24
    di94sh  
       2017-06-13 17:43:19 +08:00 via Android
    python 就是一种规定了那种方法是最好的语言。
    AirSc
        25
    AirSc  
       2017-06-13 17:56:29 +08:00
    其实更喜欢用 _ 的
    chengluyu
        26
    chengluyu  
       2017-06-13 18:00:33 +08:00 via iPhone
    个人觉得,其实无论是 Python 里的 PEP8,C++ 的 Google 规范,还是 JS 里 eslint 的各种 style,都是“推荐、可作参考”的做法。

    但是真正到了实践里,只要做到统一并且易理解就好了。你总不能强求公司里所有项目都改成这种做法吧?
    chengluyu
        27
    chengluyu  
       2017-06-13 18:01:15 +08:00 via iPhone
    提示一下楼主,那个黄色横线其实可以关闭的。
    Ouyangan
        28
    Ouyangan  
       2017-06-13 18:05:36 +08:00
    如果是 jetbrains 家的 IDE 错误提示可以设置成自己喜欢的,
    Editor -> Colors & Fonts -> general -> Error ->选择自己喜欢的风格
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2429 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 02:33 PVG 10:33 LAX 18:33 JFK 21:33
    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