zoukankan      html  css  js  c++  java
  • python通用规范-3

    文章目录

    3.1 包和模块
    3.2 类
    3.3 函数
    3.4 变量
    3.4.1 变量(`variable`)采用小写加下划线(`lower_with_under`)的风格命名。常量(`constant`)采用大写加下划线(`CAPS_WITH_UNDER`)的风格命名
    3.4.2 类或对象的私有成员一般用单下划线`_`开头;对于需要被继承的基类成员,如果想要防止与派生类成员重名,可用双下划线`__`开头。
    3.4.3 变量(`variable`)命名要有明确含义,使用完整的单词或大家基本可以理解的缩写,避免使人产生误解
    3.5 命名规范推荐表
    3.1 包和模块

    包(Package)、模块(Module)名使用意义完整的英文描述,采用小写加下划线(lower_with_under)的风格命名

    说明:模块应该用小写加下划线的方式(如lower_with_under.py)命名。尽管已经有很多现存的模块使用类似于CapWords.py这样的命名,但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰。
    正确示例:
    from sample_package import sample_module
    from sample_module import SampleClass
    1
    2
    3
    3.2 类

    类(Class)名使用意义完整的英文描述,采用大写字母开头的单词(CapWords)风格命名
    说明:类沿用面向对象语言最常用的CapWords风格命名。

    正确示例:
    class SampleClass(object):
    pass
    1
    2
    3
    3.3 函数

    函数(Function)、方法(Method)、函数参数(Function Parameters)名使用意义完整的英文描述,采用小写加下划线(lower_with_under)的风格命名

    说明: 函数、方法采用小写加下划线的风格命名,与类名做区分。 函数参数采用小写加下划线的风格命名,与一般变量的命名风格保持一致。 模块内部使用的函数用单下划线(_)开头,表示函数是protected的(使用from module1 import *时不会包含)。
    正确示例:
    def sample_public_function(sample_parameter):
    pass
    def sample_internal_function(sample_parameter):
    pass
    class SampleClass(object):
    def sample_member_method(self, sample_parameter):
    pass
    1
    2
    3
    4
    5
    6
    7
    8
    3.4 变量

    3.4.1 变量(variable)采用小写加下划线(lower_with_under)的风格命名。常量(constant)采用大写加下划线(CAPS_WITH_UNDER)的风格命名

    说明:
    常量使用大写加下划线的风格命名,与变量做区分。
    # 正确示例:
    sample_global_variable = 0
    M_SAMPLE_GLOBAL_CONSTANT = 0


    class SampleClass(object):
    SAMPLE_CLASS_CONSTANT = 0


    def sample_member_methond(self, sample_parameter):
    pass


    def sample_function():
    sample_function_variable = 0
    sample_instant_variable = SampleClass()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    3.4.2 类或对象的私有成员一般用单下划线_开头;对于需要被继承的基类成员,如果想要防止与派生类成员重名,可用双下划线__开头。

    说明: Python没有严格的私有权限控制,业界约定俗成的用单下划线“_”开头来暗示此成员仅供内部使用。双下划线“__”开头的成员会被解释器自动改名,加上类名作为前缀,其作用是防止在类继承场景中出现名字冲突,并不具有权限控制的作用,外部仍然可以访问。双下划线开头的成员应当只在需要避免名字冲突的场景中使用(比如设计为被继承的工具基类)。
    # 正确示例:


    class MyClass:
    def _my_func(self):
    member = 1 # 单下划线开头,暗示此成员仅供类的内部操作使用,外部不应该访问。

    def _my_private_func(self): # 单下划线开头,暗示此方法仅供类的内部操作使用,外部不应该访问。
    pass


    class Mapping:
    def __init__(self, iterable):
    self.items_list = []
    self.__update(iterable) # 双下划线开头,会被解释器改名为_Mapping__update。外部如果使用修改后的名字仍可访问

    def update(self, iterable):
    for item in iterable:
    self.items_list.append(item)

    __update = update # 作为update方法的私有复制成员,不会跟派生类成员重名


    class MappingSubclass(Mapping):
    # 和基类同名方法,修改了参数个数,但是不会影响基类__init__
    def update(self, keys, values):
    for item in zip(keys, values):
    self.items_list.append(item)
    __update = update # 被解释器改名为_MappingSubclass__update,不会跟基类成员重名


    # 参考资料:https://docs.python.org/3/tutorial/classes.html#private-variables
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    3.4.3 变量(variable)命名要有明确含义,使用完整的单词或大家基本可以理解的缩写,避免使人产生误解

    说明:

    命名中若使用了特殊约定或缩写,建议注释说明。
    对于变量命名,除局部循环变量之外,不允许取单个字符(如i、j、k)。
    不要用单个字符"l","o“来做变量名称。在有些字体中,这些字符于数字很难1和0很难辨认。若确实需要使
    用”l“做变量,用”L"来替换。
    # 错误示例:
    class SampleClass(object):
    pass


    def sample_function(sample_parameter):
    i = SampleClass()
    o = [l for l in range(1)]


    # 正确示例:
    class SampleClass(object):
    pass


    def sample_function(sample_parameter):
    sample_inst = SampleClass()
    number_list = [i for i in range(10)]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    3.5 命名规范推荐表

    Python之父Guido推荐的命名规范

    Type Public Internal
    Modules lower_with_under _lower_with_under
    Packages lower_with_under
    Classes CapWords
    Exceptions CapWords
    Functions lower_with_under() _lower_with_under()
    Global/Class Constants CAPS_WITH_UNDER _CAPS_WITH_UNDER
    Global/Class Variables lower_with_under lower_with_under
    Instance Variables lower_with_under lower_with_under (protected) or __lower_with_under (private)
    Method Names lower_with_under() _lower_with_under() (protected) or __lower_with_under() (private)
    Function/Method Parameters lower_with_under
    Local Variables lower_with_under
    ————————————————
    版权声明:本文为CSDN博主「zhao12501」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zhao12501/article/details/115455304

    A thousand journey is started by taking the first step.
  • 相关阅读:
    【pandas】'Styler' object has no attribute 'highlight_between'
    【原创】3行代码搞定:Python批量实现多Excel多Sheet合并
    【挑战阿里面试题-10种方法实现DataFrame转list】
    SpringCloud+RocketMQ实现分布式事务
    分布式事物SAGA
    分布式事务TCC
    多线程学习——思维导图
    .NET CLI简单教程和项目结构
    使用Google Fonts注意事项
    如何在印刷品中使用遵循SIL Open Font License协议的字体
  • 原文地址:https://www.cnblogs.com/chengjian-physique/p/14995370.html
Copyright © 2011-2022 走看看