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
freefcw
V2EX  ›  Python

下划线和匈牙利命名法

  •  
  •   freefcw ·
    freefcw · 2012-01-31 15:13:24 +08:00 · 9865 次点击
    这是一个创建于 4684 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这几天不知道为什么总是在想这个东西。python推荐的是使用下划线,也有很多地方依然使用的是匈牙利命名法,比如微软和苹果。

    Function Names

    Function names should be lowercase, with words separated by underscores as necessary to improve readability.

    mixedCase is allowed only in contexts where that's already the
    prevailing style (e.g. threading.py), to retain backwards compatibility.

    原文:http://www.python.org/dev/peps/pep-0008/

    从某种角度来说,觉得下划线似乎确实是更适合阅读,像空格,在视觉上更可读一些。

    this_is_readability_statement

    thisIsReadabilityStatement?
    18 条回复    1970-01-01 08:00:00 +08:00
    hzlzh
        1
    hzlzh  
       2012-01-31 15:19:09 +08:00   ❤️ 1
    我只能告诉你,我做前端代码html+css用 下划线 _(top_box) 和 中横线 - (top-box)这两种多一些,js代码 匈牙利多一些(topBox)。

    中横线的SEO效果非常好,WordPress官方就是这样的,
    下划线 在编辑器中的快捷选择非常舒服,
    至于匈牙利也就是驼峰,见楼下分析吧。

    主要还是看编辑器种类和个人习惯以及项目协作要求。
    est
        2
    est  
       2012-01-31 15:41:25 +08:00
    几乎所有语言的源码里都不能用 中横线。因为 top-box 会被理解成变量top减去变量box。(前缀函数闭嘴)
    qiayue
        3
    qiayue  
       2012-01-31 15:46:38 +08:00
    @est css中我常用中横线
    heroicYang
        4
    heroicYang  
       2012-01-31 16:01:25 +08:00
    大多数情况下使用的匈牙利命名法~C#和Java里面比较通用的命名规范!
    但是在脚本语言里,我总觉着匈牙利命名看着不舒服。。
    insraq
        5
    insraq  
       2012-01-31 16:26:29 +08:00
    匈牙利命名(Hungarian notation)可不是驼峰(camelCase):http://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95

    关于驼峰和下划线,每个语言都有自己的偏好,比如Java偏爱驼峰,而Ruby Python偏爱下划线,PHP则是比较混乱。
    freefcw
        6
    freefcw  
    OP
       2012-01-31 16:31:44 +08:00
    @heroicYang 嗯,我也发现有这种趋向
    freefcw
        7
    freefcw  
    OP
       2012-01-31 16:32:57 +08:00
    @insraq 囧,我混淆了这两种说法。
    ssword
        8
    ssword  
       2012-01-31 16:35:49 +08:00
    匈牙利命名法迂腐之极,必须死。
    驼峰命名法则比较容易写出冗长的名字,个人不大喜欢。
    lldong
        9
    lldong  
       2012-01-31 16:57:42 +08:00
    @ssword 关于匈牙利命名法也不是一无是处,只是一直以来都被错用了而已,Joel on Software 上就有一片文章讲这个 http://www.joelonsoftware.com/articles/Wrong.html
    darcy
        10
    darcy  
       2012-01-31 17:12:27 +08:00 via iPod
    喜好而已,只要在同一份源码中,同一个应用中保持一贯的规则,修改别人的代码就保持使用创建者的风格即可。(在文件或者项目中始终使用同一种编码风格)
    icyflash
        11
    icyflash  
       2012-01-31 17:23:05 +08:00
    输下划线还要按shift切一下,不喜欢
    另外LZ举的例也太夸张了点吧,很少见这么长的
    mcfog
        12
    mcfog  
       2012-01-31 17:40:17 +08:00
    @icyflash 驼峰也要按Shift啊

    个人感觉驼峰更适合动词词组而下划线更适合名词,所以倾向于方法/函数用驼峰,变量/属性用下划线,但是如果是已有代码/项目的话肯定是要遵守已有的约定
    hzlzh
        13
    hzlzh  
       2012-01-31 18:17:37 +08:00
    @est html css 都可以用 中横线 。。。难道不是语言?
    hzlzh
        14
    hzlzh  
       2012-01-31 18:21:25 +08:00
    那啥,更正一下,驼峰 和 匈牙利 不一样,两者是两个概念。详见 5楼 @insraq 给出的链接
    darcy
        15
    darcy  
       2012-01-31 18:26:21 +08:00
    @hzlzh html/css是标签和属性,还谈不上到语言层次。
    chuck911
        16
    chuck911  
       2012-01-31 18:37:21 +08:00
    有神马好纠结的?
    每个框架都有推荐的命名规范,入乡随俗就是了
    有些大牛实在没啥研究的就在那讨论这种抽象的问题,我们有时间不如多搞点有意思的东西...
    icyflash
        17
    icyflash  
       2012-01-31 19:12:52 +08:00
    @mcfog 不用啊。反正我个人是“敲”capslock切大小写,不喜欢“按”shift
    lepture
        18
    lepture  
       2012-02-02 21:44:54 +08:00
    @icyflash capslock 已經被換到了 ctrl 的地方,所以還是 shift 好用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5976 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 02:31 · PVG 10:31 · LAX 18:31 · JFK 21:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.