V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
JCZ2MkKb5S8ZX9pq
V2EX  ›  问与答

Python 的一个命名习惯的问题

  •  
  •   JCZ2MkKb5S8ZX9pq · 2020-01-13 22:44:35 +08:00 · 1407 次点击
    这是一个创建于 1536 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 刚好在用 pyaudio,看到这个情况,想起自己其实也经常碰到。

      p = pyaudio.PyAudio()
      

    问题点

    • 假设 单文件,单功能,单函数,但 名称较长

    • 假设有很多近似的功能,然后我希望尽量在名称上以区别。

    • 如果文件名和所包含的主函数 /类名一致,那两个都是上面那个长长的名字。

    • 然后第三方文件调用的时候,就会变成:

      from a_very_very_long_file_name import a_very_very_long_module_name
      
    • 而且很多时候两个名字是一样的,最多大小写区别。


    想看看大家的处理习惯。

    6 条回复    2020-01-14 15:09:13 +08:00
    ClericPy
        1
    ClericPy  
       2020-01-13 23:33:52 +08:00
    https://www.python.org/dev/peps/pep-0008/#id41

    https://www.python.org/dev/peps/pep-0008/#package-and-module-names

    跟着 PEP8 走挺省事, 虽然有时候 linter 不提醒...

    至于名字一样, 我经常 repositories name, package name 一样, 其他情况很少一样, 从单一职责来说, 类名和包名一样也没什么问题, 近似功能参考高内聚, 低耦合那些设计原则, 有时候看看那些老外的源码, 会学到很多起名字的好习惯
    JCZ2MkKb5S8ZX9pq
        2
    JCZ2MkKb5S8ZX9pq  
    OP
       2020-01-14 00:06:14 +08:00
    @ClericPy 命名规范现在是按 google 那套在做,就是同名导入看起来挺蠢的。
    MrGba2z
        3
    MrGba2z  
       2020-01-14 05:16:16 +08:00
    Use from x import y as z if two modules named y are to be imported or if y is an inconveniently long name.
    AAdalao
        4
    AAdalao  
       2020-01-14 08:43:00 +08:00
    pycharm 要求几乎所有的地方都用小写,函数名变量名,局部变量。。着实难受
    JCZ2MkKb5S8ZX9pq
        5
    JCZ2MkKb5S8ZX9pq  
    OP
       2020-01-14 15:07:35 +08:00 via iPhone
    @MrGba2z 不是这个问题 ,是 x 和 y 重复,不是两个 y 重复。
    JCZ2MkKb5S8ZX9pq
        6
    JCZ2MkKb5S8ZX9pq  
    OP
       2020-01-14 15:09:13 +08:00 via iPhone
    @AAdalao 局部变量开头加个下划线?
    偶尔有过写局部变量把函数给覆盖了……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3024 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 895ms · UTC 11:03 · PVG 19:03 · LAX 04:03 · JFK 07:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.