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

论 Python 方法命名的美观度

  •  
  •   GeekGao · 2014-12-31 12:46:45 +08:00 · 3637 次点击
    这是一个创建于 3396 天前的主题,其中的信息可能已经有所发展或是发生改变。
    get_xxx_name

    process_xxx_attr

    is_xxx_workable

    upsert_xxxx_prop

    这么命名,但是包含大量此类命名后,代码看起来有些别扭的感觉。不知道大家有没有什么好的命名实践方法?
    13 条回复    2015-01-04 10:57:04 +08:00
    bigzhu
        1
    bigzhu  
       2014-12-31 12:51:32 +08:00 via Android
    驼峰啊,开头动词且小写
    neoblackcap
        2
    neoblackcap  
       2014-12-31 12:54:56 +08:00 via Android
    PEP8建议是用蛇形,而且方法名是给人看并理解是用来干什么用的。有时候长也比短好,我自己写的函数名也很长,至少别人一看就知道干嘛用的
    qdwang
        3
    qdwang  
       2014-12-31 13:04:33 +08:00
    个人也觉得用下划线不好看。。。。lisp系里面可以用 “-” 链接什么的挺好,还能加特殊符号表达意思。

    驼峰也挺好,是一般语言的看上去比较舒适的选择。

    不过python很多库里都是用小写,但是很少看到 下划线,可能是拆分的粒度比较细。
    glasslion
        4
    glasslion  
       2014-12-31 13:05:32 +08:00   ❤️ 5
    可以看下 Pycon2013 上的这个演讲:

    slide: http://rhodesmill.org/brandon/slides/2013-03-pycon/

    国内程序员太喜欢滥用 get_xxx, set_xxx, process_xxx 之类的名字, 换一个更具体的动词会比较好。
    GeekGao
        5
    GeekGao  
    OP
       2014-12-31 13:13:45 +08:00
    @bigzhu PEP8不建议驼峰啊,况且企业内一般也不常用驼峰命名规则
    simon7
        6
    simon7  
       2014-12-31 13:16:54 +08:00 via iPhone
    我都是用驼峰的,反正代码就我一个人维护。
    iT2afL0rd
        7
    iT2afL0rd  
       2014-12-31 13:34:57 +08:00
    我也不太喜欢这种命名方式,一般还是用驼峰。只要意思表达的都清楚就好了
    rcmerci
        8
    rcmerci  
       2014-12-31 13:43:58 +08:00
    @glasslion 主要英语不够好。容易想到的只有get,set什么的,最后发现一堆get_xxx ....
    jjx
        9
    jjx  
       2014-12-31 15:46:55 +08:00
    get/set 驼峰  java的习惯吧

    python还是小写加下划线

    我倒觉的主要是英文问题,好多都不知道用什么单词表达
    yellowV2ex
        10
    yellowV2ex  
       2014-12-31 15:57:52 +08:00   ❤️ 1
    呵呵,来看看objc的方法命名

    stringByReplacingOccurrencesOfString
    stringWithContentsOfFile
    initWithCharactersNoCopy

    基本上把这个函数的返回,传入,用来干嘛的都体现出来了

    变量
    NSStringEncodingDetectionDisallowedEncodingsKey
    NSStringEncodingDetectionUseOnlySuggestedEncodingsKey
    fatestigma
        11
    fatestigma  
       2014-12-31 18:34:19 +08:00 via iPad
    我个人比较喜欢驼峰式的。但是后来发现很多开源代码风格主要还是像PEP8。所以现在基本也用这种方式了。。在团队合作中确实能方便不少。
    特别喜欢Ruby的那种返回bool的方法用?结尾,方法具有"破坏性"的以!结尾。
    cbsw
        12
    cbsw  
       2014-12-31 19:11:56 +08:00
    @fatestigma 这是从 Lisp 处学来的,认真看 Lisp 代码还是最优美的
    Janselz
        13
    Janselz  
       2015-01-04 10:57:04 +08:00
    个人觉得Python使用驼峰 不是很好看,还是喜欢“get_xxx_name”这种格式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5399 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 03:36 · PVG 11:36 · LAX 20:36 · JFK 23:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.