精华内容
下载资源
问答
  • 文件夹命名规范

    2015-12-27 14:35:00
    2019独角兽企业重金招聘Python工程师标准>>> ...

    按A-Z升序排列

      admin     后台管理
      app       应用
      article   资讯
      common    公共
      config    配置
      data      数据
      digg      顶
      en-us     英文
      extend    延伸
      install   安装
      Lang      语言包
      Lib       库
      mall      商城
      picture   组图
      product   商品
      search    搜索
      section   区块
      shop      商店
      static    静态
      system    系统
      templates 模版
      tuan      团购
      ucenter   用户中心
      upload    上传
      video     视频
      vote      投票
      zh_tw     繁体中文
      zh-cn     简体中文


    转载于:https://my.oschina.net/yongqingfan/blog/551743

    展开全文
  • python 变量命名规范

    2016-01-29 10:54:00
    python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。 模块名: 模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是...

    python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。

    模块名:

    模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是这样的,虽然其并不鼓励下划线。

    主要是考虑模块名是与文件夹相对应的,因此需要考虑文件系统的一些命名规则的,比如Unix系统对大小写敏感,而过长的文件名会影响其在Windows\Mac\Dos等系统中的正常使用。

    通常是小写字母,单词之间用_分割
    ad_stats.py

    包名:

    和模块名一样

    类名:

    几乎毫无例外的,类名都使用首字母大写开头(Pascal命名风格)的规范。使用_单下划线开头的类名为内部使用,from M import *默认不被导入的情况。
    单词首字母大写
    AdStats
    ConfigUtil
    全局变量名(类变量,在java中相当于static变量):
    大写字母,单词之间用_分割
    NUMBER
    COLOR_WRITE
    对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。
    注意:应避免使用全局变量

    普通变量:

    小写字母,单词之间用_分割
    this_is_a_var

    注意

    1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
    2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
    3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
    实例变量:
    以_开头,其他和普通变量一样
    _price

    instancevar
    私有实例变量(外部访问会报错):
    以__开头(2个下划线),其他和普通变量一样
    __private_var
    专有变量:
    开头,结尾,一般为python的自有变量,不要以这种方式命名
    doc
    class

    普通函数:

    和普通变量一样:
    get_name()
    count_number()
    ad_stat()

    私有函数(外部访问会报错):

    以__开头(2个下划线),其他和普通函数一样
    get_name()
    文件名:
    全小写,可使用下划线
    注意:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。
    函数和方法的参数:
    总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。
    如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。
    常量:
    常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。
    异常
    因为异常也是一个类,所以遵守类的命名规则。此外,如果异常实际上指代一个错误的话,应该使用“Error”做后缀。
    缩写
    命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
    1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
    2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
    例如:
    function 缩写为 fn
    text 缩写为 txt
    object 缩写为 obj
    count 缩写为 cnt
    number 缩写为 num,等。
    前导后缀下划线总结
    一个前导下划线:表示非公有。
    一个后缀下划线:避免关键字冲突。
    两个前导下划线:当命名一个类属性引起名称冲突时使用。
    两个前导和后缀下划线:“魔术”(有特殊用途)对象或者属性,例如
    init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
    注意:关于下划线的使用存在一些争议。
    Python 用下划线作为变量前缀和后缀指定特殊变量。
    _xxx 不能用'from module import *'导入(相当于 private)
    xxx 系统定义名字
    xxx 类中的私有变量名(相当于protect)
    核心风格:避免用下划线作为变量名的开始。
    因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。单下划线 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
    双下划线 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
    以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(
    foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
    特定命名方式
    主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如
    class Base(object):
    def init(self, id, parent = None):
    self.__id__ = id
    self.__parent__ = parent
    def message(self, msgid):

    …略

    其中 id、__parent__ 和 message 都采用了系统保留字命名法。
    双下划线开头双下划线结尾:指那些包含在用户无法控制的命名空间中的“魔术”对象或属性,如类成员的__name__、__doc__、__init__、__import__、__file__、等。推荐永远不要将这样的命名方式应用于自己的变量或函数。
    单下划线结尾_:只是为了避免与python关键字的命名冲突
    _单下划线开头:弱“内部使用”标识,如:”from M import *”,将不导入所有以下划线开头的对象,包括包、模块、成员

    转载于:https://www.cnblogs.com/kamil/p/python-bian-liang-ming-ming-gui-fan.html

    展开全文
  • python命名规范

    2019-06-04 10:43:26
    整理了一下自己的代码,发现混乱的结构和命名让自己头大,所以学习并且整理了一下python命名规范、风格规范和项目结构规范。 一、命名规范: 文件名:全小写,可以使用下划线。 模块(.py文件):尽可能短的...

    整理了一下自己的代码,发现混乱的结构和命名让自己头大,所以学习并且整理了一下python的命名规范、风格规范和项目结构规范。

    一、命名规范:

        文件名:全小写,可以使用下划线。

        模块(.py文件):尽可能短的全小写的名字,如有必要,可以使用下划线增加可读性。

        包__init__.py文件夹):尽可能短的全小写的名字,如有必要,可以使用下划线增加可读性。

        类(class):首字母大写,一般不用下划线;使用单下划线‘’_‘’(前导下划线)开头的类为内部类。

        函数(方法):应该为全小写,可以使用下划线分割单词以增强可读性。

        参数:‘self’作为实例内部的第一个参数,‘cls’作为类方法的第一个参数。如果一个函数的参数名称和保留关键字冲突,通常使用一个后缀下划线。

        变量:变量名全部小写,用下划线来连接多个单词

        *注意*:
          1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
          2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
          3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

        全局变量: 对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。应尽量避免使用全局变量。

        常量:常量所有字母大写,可用下划线连接各个单词。

        异常:以“Error”作为后缀。

        缩写:命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
          1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
          2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
          例如:
            function 缩写为 fn
            text 缩写为 txt
            object 缩写为 obj
            count 缩写为 cnt
            number 缩写为 num,等。
            前导后缀下划线
            一个前导下划线:表示非公有。
            一个后缀下划线:避免关键字冲突。
            两个前导下划线:当命名一个类属性引起名称冲突时使用。
            两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
            *注意*:关于下划线的使用存在一些争议。
        特定命名方式:主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如
             class Base(object):
             def __init__(self, id, parent = None):
             self.__id__ = id
             self.__parent__ = parent
             def __message__(self, msgid):
             其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

    Google Python命名规范:
    module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.

     

    二、风格规范:

        分号:不要在行尾加分号,也不要用分号将两条命令放在同一行

        行长度:每行不超过80个字符(例外:注释里的URL,长的导入模块)

                      不要用反斜杠连接行,python会将圆括号、中括号和花括号中的行隐式的连接起来,可以利用这个特点,如果需要,  可以在表达式外增加一对额外的圆括号。

        括号:宁缺毋滥地使用括号。除非是用于实现行连接,否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的。

        缩进:用4个空格来缩进代码。不要用tab, 也不要tab和空格混用. 对于行连接的情况, 你应该要么垂直对齐换行的元素, 或者使用4空格的悬挂式缩进(这时第一行不应该有参数)

        空行:顶级定义之间空两行(比如函数或者类定义);方法定义之间空一行,方法定义,类定义与第一个方法之间,都应该空一行。

        空格:括号内不要有空格

                   不要在逗号、分号、冒号前加空格,但应该在他们后面加(除了行尾)

                   参数列表,索引或切片的左括号前不应该加空格

                   二元操作符两边都应该加空格(赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not)等)

                   当‘=’用于指示关键字参数或默认参数值时,不要在其两侧使用空格

                   不要用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于‘:‘, ‘#‘, ‘=‘等):

         Shebang:大部分.py文件不必以#!作为文件的开始。根据 PEP-394 , 程序的main文件应该以 #!/usr/bin/python2或者 #!/usr/bin/python3开始。#!先用于帮助内核找到Python解释器, 但是在导入模块时, 将会被忽略. 因此只有被直接执行的文件中才有必要加入#!。

        注释:

             模块:每个文件应该包含一个许可样板. 根据项目使用的许可(例如, Apache 2.0, BSD, LGPL, GPL), 选择合适的样板.

             函数和方法:

                下文所指的函数,包括函数, 方法, 以及生成器.

                一个函数必须要有文档字符串, 除非它满足以下条件:

    1. 外部不可见
    2. 非常短小
    3. 简单明了

    文档字符串应该包含函数做什么, 以及输入和输出的详细描述. 通常, 不应该描述”怎么做”, 除非是一些复杂的算法. 文档字符串应该提供足够的信息, 当别人编写代码调用该函数时, 他不需要看一行代码, 只要看文档字符串就可以了. 对于复杂的代码, 在代码旁边加注释会比使用文档字符串更有意义.

    关于函数的几个方面应该在特定的小节中进行描述记录, 这几个方面如下文所述. 每节应该以一个标题行开始. 标题行以冒号结尾. 除标题行外, 节的其他内容应被缩进2个空格.

    Args:

    列出每个参数的名字, 并在名字后使用一个冒号和一个空格, 分隔对该参数的描述.如果描述太长超过了单行80字符,使用2或者4个空格的悬挂缩进(与文件其他部分保持一致). 描述应该包括所需的类型和含义. 如果一个函数接受*foo(可变长度参数列表)或者**bar (任意关键字参数), 应该详细列出*foo和**bar.

    Returns: (或者 Yields: 用于生成器)

    描述返回值的类型和语义,如果函数返回None, 这一部分可以省略.

    Raises:

    列出与接口有关的所有异常。

    def fetch_bigtable_rows(big_table, keys, other_silly_variable=None):
        """Fetches rows from a Bigtable.
    
        Retrieves rows pertaining to the given keys from the Table instance
        represented by big_table.  Silly things may happen if
        other_silly_variable is not None.
    
        Args:
            big_table: An open Bigtable Table instance.
            keys: A sequence of strings representing the key of each table row
                to fetch.
            other_silly_variable: Another optional variable, that has a much
                longer name than the other args, and which does nothing.
    
        Returns:
            A dict mapping keys to the corresponding table row data
            fetched. Each row is represented as a tuple of strings. For
            example:
    
            {'Serak': ('Rigel VII', 'Preparer'),
             'Zim': ('Irk', 'Invader'),
             'Lrrr': ('Omicron Persei 8', 'Emperor')}
    
            If a key from the keys argument is missing from the dictionary,
            then that row was not found in the table.
    
        Raises:
            IOError: An error occurred accessing the bigtable.Table object.
        """
        pass

               类应该在其定义下有一个用于描述该类的文档字符串. 如果你的类有公共属性(Attributes), 那么文档中应该有一个属性(Attributes)段. 并且应该遵守和函数参数相同的格式

    class SampleClass(object):
        """Summary of class here.
    
        Longer class information....
        Longer class information....
    
        Attributes:
            likes_spam: A boolean indicating if we like SPAM or not.
            eggs: An integer count of the eggs we have laid.
        """
    
        def __init__(self, likes_spam=False):
            """Inits SampleClass with blah."""
            self.likes_spam = likes_spam
            self.eggs = 0
    
        def public_method(self):
            """Performs operation blah."""

    块注释和行注释

           最需要写注释的是代码中那些技巧性的部分. 如果你在下次代码审查的时候必须解释一下, 那么你应该现在就给它写注释. 对于复杂的操作, 应该在其操作开始前写上若干行注释. 对于不是一目了然的代码, 应在其行尾添加注释。

    # We use a weighted dictionary search to find out where i is in
    # the array.  We extrapolate position based on the largest num
    # in the array and the array size and then do binary search to
    # get the exact number.
    
    if i & (i-1) == 0:        # True if i is 0 or a power of 2.

    为了提高可读性, 注释应该至少离开代码2个空格.

    另一方面, 绝不要描述代码. 假设阅读代码的人比你更懂Python, 他只是不知道你的代码要做什么.

     

    三、项目规范:

    "项目目录结构"其实也是属于"可读性和可维护性"的范畴,设计一个层次清晰的目录结构,是为了达到以下两点:

    1. 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。
    2. 可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。

    所以,保持一个层次清晰的目录结构是有必要的。更何况组织一个良好的工程目录,其实是一件很简单的事儿。

    目录组织方式

    假设项目名为foo:

    Foo/
    |-- bin/
    |   |-- foo
    |
    |-- foo/
    |   |-- tests/
    |   |   |-- __init__.py
    |   |   |-- test_main.py
    |   |
    |   |-- __init__.py
    |   |-- main.py
    |
    |-- docs/
    |   |-- conf.py
    |   |-- abc.rst
    |
    |-- setup.py
    |-- requirements.txt
    |-- README
    

    解释:

    1. bin/: 也可以起名为script/等,存放项目的一些可执行文件。
    2. foo/: 存放项目的所有源代码。 (1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py
    3. docs/: 存放一些文档。
    4. setup.py: 安装、部署、打包的脚本。
    5. requirements.txt: 存放软件依赖的外部Python包列表。
    6. README: 项目说明文件。

    除此之外,有一些方案给出了更加多的内容。比如LICENSE.txt,ChangeLog.txt文件等,我没有列在这里,因为这些东西主要是项目开源的时候需要用到。如果你想写一个开源软件,目录该如何组织,可以参考这篇文章

    关于README的内容

    这个是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。

    它需要说明以下几个事项:

    1. 软件定位,软件的基本功能。
    2. 运行代码的方法: 安装环境、启动命令等。
    3. 简要的使用说明。
    4. 代码目录结构说明,更详细点可以说明软件的基本原理。
    5. 常见问题说明。

    有以上几点是比较好的一个README。在软件开发初期,由于开发过程中以上内容可能不明确或者发生变化,并不是一定要在一开始就将所有信息都补全。但是在项目完结的时候,是需要撰写这样的一个文档的。

    可以参考Redis源码中Readme的写法,这里面简洁但是清晰的描述了Redis功能和源码结构。

    关于requirements.txt和setup.py

    setup.py

    一般来说,用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情。这种方式普遍应用于开源项目中。不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。

    刚开始接触Python写项目的时候,安装环境、部署代码、运行程序这个过程全是手动完成,遇到过以下问题:

    1. 安装环境时经常忘了最近又添加了一个新的Python包,结果一到线上运行,程序就出错了。
    2. Python包的版本依赖问题,有时候我们程序中使用的是一个版本的Python包,但是官方的已经是最新的包了,通过手动安装就可能装错了。
    3. 如果依赖的包很多的话,一个一个安装这些依赖是很费时的事情。
    4. 新同学开始写项目的时候,将程序跑起来非常麻烦,因为可能经常忘了要怎么安装各种依赖。

    setup.py可以将这些事情自动化起来,提高效率、减少出错的概率。"复杂的东西自动化,能自动化的东西一定要自动化。"是一个非常好的习惯。

    setuptools的文档比较庞大,刚接触的话,可能不太好找到切入点。学习技术的方式就是看他人是怎么用的,可以参考一下Python的一个Web框架,flask是如何写的: setup.py

    当然,简单点自己写个安装脚本(deploy.sh)替代setup.py也未尝不可。

    requirements.txt

    这个文件存在的目的是:

    1. 方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。
    2. 方便读者明确项目使用了哪些Python包。

    这个文件的格式是每一行包含一个包依赖的说明,通常是flask>=0.10这种格式,要求是这个格式能被pip识别,这样就可以简单的通过 pip install -r requirements.txt来把所有Python包依赖都装好了。具体格式说明: 点这里

     

    关于配置文件的使用方法

    注意,在上面的目录结构中,没有将conf.py放在源码目录下,而是放在docs/目录下。

    很多项目对配置文件的使用做法是:

    1. 配置文件写在一个或多个python文件中,比如此处的conf.py。
    2. 项目中哪个模块用到这个配置文件就直接通过import conf这种形式来在代码中使用配置。

    这种做法我不太赞同:

    1. 这让单元测试变得困难(因为模块内部依赖了外部配置)
    2. 另一方面配置文件作为用户控制程序的接口,应当可以由用户自由指定该文件的路径。
    3. 程序组件可复用性太差,因为这种贯穿所有模块的代码硬编码方式,使得大部分模块都依赖conf.py这个文件。

    所以,我认为配置的使用,更好的方式是,

    1. 模块的配置都是可以灵活配置的,不受外部配置文件的影响。
    2. 程序的配置也是可以灵活控制的。

    能够佐证这个思想的是,用过nginx和mysql的同学都知道,nginx、mysql这些程序都可以自由的指定用户配置。

    所以,不应当在代码中直接import conf来使用配置文件。上面目录结构中的conf.py,是给出的一个配置样例,不是在写死在程序中直接引用的配置文件。可以通过给main.py启动参数指定配置路径的方式来让程序读取配置内容。当然,这里的conf.py你可以换个类似的名字,比如settings.py。或者你也可以使用其他格式的内容来编写配置文件,比如settings.yaml之类的。

    展开全文
  • python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。 模块名: 模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是...

    python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。

    模块名:

    模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是这样的,虽然其并不鼓励下划线。

    主要是考虑模块名是与文件夹相对应的,因此需要考虑文件系统的一些命名规则的,比如Unix系统对大小写敏感,而过长的文件名会影响其在Windows\Mac\Dos等系统中的正常使用。

    通常是小写字母,单词之间用_分割

    ad_stats.py

    包名:

    和模块名一样

    类名:

    几乎毫无例外的,类名都使用首字母大写开头(Pascal命名风格)的规范。使用_单下划线开头的类名为内部使用,from M import *默认不被导入的情况。

    单词首字母大写

    AdStats

    ConfigUtil

    全局变量名(类变量,在java中相当于static变量):

    大写字母,单词之间用_分割

    NUMBER

    COLOR_WRITE

    对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。

    *注意*:应避免使用全局变量

    普通变量:

    小写字母,单词之间用_分割

    this_is_a_var

    *注意*:

    1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。

    2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。

    3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

    实例变量:

    以_开头,其他和普通变量一样

    _price

    _instance_var

    私有实例变量(外部访问会报错):

    以__开头(2个下划线),其他和普通变量一样

    __private_var

    专有变量:

    __开头,__结尾,一般为python的自有变量,不要以这种方式命名

    __doc__

    __class__

    普通函数:

    和普通变量一样:

    get_name()

    count_number()

    ad_stat()

    私有函数(外部访问会报错):

    以__开头(2个下划线),其他和普通函数一样

    __get_name()

    文件名:

    全小写,可使用下划线

    *注意*:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。

    函数和方法的参数:

    总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。

    如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

    常量:

    常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

    异常

    因为异常也是一个类,所以遵守类的命名规则。此外,如果异常实际上指代一个错误的话,应该使用“Error”做后缀。

    缩写

    命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

    1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。

    2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。

    例如:

    function 缩写为 fn

    text 缩写为 txt

    object 缩写为 obj

    count 缩写为 cnt

    number 缩写为 num,等。

    前导后缀下划线总结

    一个前导下划线:表示非公有。

    一个后缀下划线:避免关键字冲突。

    两个前导下划线:当命名一个类属性引起名称冲突时使用。

    两个前导和后缀下划线:“魔术”(有特殊用途)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。

    *注意*:关于下划线的使用存在一些争议。

    Python 用下划线作为变量前缀和后缀指定特殊变量。

    _xxx 不能用'from module import *'导入(相当于 private)

    __xxx__ 系统定义名字

    __xxx 类中的私有变量名(相当于protect)

    核心风格:避免用下划线作为变量名的开始。

    因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;

    "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

    以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。

    特定命名方式

    主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

    class Base(object):

    def __init__(self, id, parent = None):

    self.__id__ = id

    self.__parent__ = parent

    def __message__(self, msgid):

    # …略
    其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

    __双下划线开头双下划线结尾__:指那些包含在用户无法控制的命名空间中的“魔术”对象或属性,如类成员的__name__、__doc__、__init__、__import__、__file__、等。推荐永远不要将这样的命名方式应用于自己的变量或函数。

    单下划线结尾_:只是为了避免与python关键字的命名冲突

    _单下划线开头:弱“内部使用”标识,如:”from M import *”,将不导入所有以下划线开头的对象,包括包、模块、成员

    转载于:https://www.cnblogs.com/boyryan/p/6380580.html

    展开全文
  • 软件命名规范:分文件存储 当代码存放在一个py文件中时会存在一下缺点: 不便于管理 可读性差 加载速度慢 是Django的雏形 程序员预定俗称的一些东西 启动文件:也叫启动接口,通常文件夹名字使用bin,存放启动...
  • python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。 模块名: 模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是...
  • 文件夹命名

    2019-09-20 23:16:55
    运行Python的,py文件出现“can’t open file ‘’: [Errno 2] No such file or directory ‘email学习相关’ ...可能原因是当前文件夹命名格式不符合规范,注意文件夹名称中不能有“空格”、“&”等特殊字符 ...
  • 在做深度学习相关项目时,需要标注图片,筛选过后图片名字带有括号,显得比较乱,因此利用python进行统一规范重命名操作 实现方法是利用python的os模块对文件夹进行遍历(listdir),然后使用rename进行改名操作 ...
  • Python之遍历文件夹图片并重命名

    千次阅读 2018-07-02 11:00:32
    在做深度学习相关项目时,需要标注图片,筛选过后图片名字带有括号,显得比较乱,因此利用python进行统一规范重命名操作 实现方法是利用python的os模块对文件夹进行遍历(listdir),然后使用rename进行改名操作 ...
  • 包、模块的命名规范 小写,多个单词用下划线分割 例如:my_first_py_package 规范的命名包会有个小白点,不规范的就是普通文件夹 类的命名规范 驼峰命名法 有多个单词,首字母大写,私有类用下划线开头 ...
  • 对于做SLAM也好,还是做深度学习也好,涉及到大量的数据,系统对数据处理的时候,需要对比较规范的数据格式进行处理,往往我们提取的图像数据命名并不是那么规范,因此需要对采集的图像信息规范命名。 以python2为例...
  • 本示例演示了使用python将存储在多个文件夹中、有重名且命名不太规范情况下,将所有文件合并复制到同一文件夹下的实现过程。
  • 文章目录模块什么是模块模块三大来源模块的四种形式为何有用模块导入模块发生的事情、import和from import差别循环导入问题解决方法区分python...模块3)最后去sys.path列表中存放的多个文件夹依次检索python命名规范...
  • Python 代码规范

    2021-04-28 16:44:12
    Python 开发过程中会创建文件夹/文件/变量等,这些在命名有一些潜规则(编写代码时也要注意pep8规范文件夹,小写&小写下划线连接,例如: commands、data_utils等 文件,小写&小写下划线连接,例如:...
  • 一、问题 工作习惯问题,经常将每日工作建立一个文件夹,并把当天的工作内容存放到一个规范命名(通常就是一个日期名字)的文件夹内,直到有一天突然需要将所有文件合并到一个文件夹下面压缩发送给领导的时候,懵逼...
  • 需求说明:某个文件夹下有2000多个文件,我需要将他们分成多个文件夹进行存放,每100个文件分成一个文件夹,并且命名要有规范,序号为3位数,不足3位数则用“0”来补齐位数。 import os import shutil #功能:文件...
  • 软件主文件夹命名,通常都是大写(ATM_SHOPPING) ------------------------------------------------------------------------- bin : 启动文件文件夹(整个软件的启动文件,也可直接写在根目录下省略这个文件夹)...
  • 本文实例讲述了python检查指定文件是否存在的方法。分享给大家供大家参考。具体如下: import os ... 您可能感兴趣的文章:详解python里的命名规范Python判断文件或文件夹是否存在的三种方法对Python
  • python命名规范 : 文件名和文件夹名称最好使用小写字母,并使用下划线代替空格 。 在windows系统中从终端执行python程序 : python 文件名称 (python hello.py) , 运行文件hello.py时,末尾的.py指出这是一个...
  • 包和模块 包 在程序中对文件分类管理的文件夹 作用: 1.对文件进行分类管理 2.对文件提供了多级命名空间 a 目录下 1.txt b 目录下 1.txt 创建包: 选中Python package 包名命名规范: ...
  • 只有符合命名规范文件夹才是python package才能导入!! 使用from导入的时候后导入的会覆盖先前导入的同名文件。 #绝对导入 import part3 from part3.my_package import my_init_test #相对导入...
  • 模块命名规范 界面模块:views.py 数据模块:data.py 业务模块:sevices.py 程序入口:main.py """文档注释""" import 模块名 定义全局变量 def 函数名(): 代码。。。 导入方式 注意:1.模块名要符合...
  • 前言 python 对于文件及文件夹的操作。...背景:在Android环境下,有些图片或者文件资源 ,如果命名规范,会引起崩溃,如果有中文的话,直接编译不过去, 所以我们需要找出它们,(可以直接在下面脚...
  • python xxxA.py 调用 xxxB.py 中的方法

    千次阅读 2017-10-07 12:56:51
    起初只是创建了文件夹,直接在...模块的命名需要规范 不能以数字开始 改文件下需要存在 __init__.py 文件 如何引用同一module下的其他xxx.py 下的方法 from _10python import _171007dict163_db _10python 是mod
  • 制作数据集时,利用python对标注数据清洗和可视化说明:进行数据清洗步骤之前,将标注的好的xml文件和数据原图分别存放在不同的文件夹中。Step1: 检查所标注的xml文件中是否有命名不合规范的存在Step2: 对比数据源图...
  • 一、标识符 ...4、标识符的命名规范: a.标识符是由字母(A–Z 和 a–z)、下划线和数字组成。如果标识符中出现除了这 3 类字符之外的其他字符,就肯定是不合法标识符。 b.标识符的第一个字...
  • 做深度学习图像分类拿到新的数据集不可避免的要对图片进行批量数理...第二层循环就是对每一个文件夹下的图片进行规范命名,“格式为:rgb-序号-种类编号.JPG” import os import re path="D:\\深度学习数据\\bird2.0...
  • 1.模块:模块就是个python文件,后缀是.py。规范的模块内容应该包括类、函数和测试代码。使用模块时直接导入(模块如果用数字开头进行命名,导入的时候需要借助importlib) 注:通过from语法导入模块,使用模块内容...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

python文件夹命名规范

python 订阅