一文轻松掌握python语言命名规则(规范)

一文轻松掌握python语言命名规则(规范)和C/C++、Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而提高编写代码的效率。我们在平常编写程序的时候需要注意以下几点:一、python变量名命名的硬性规则1.1.变量名大小写敏感python变量名区分大小写,也就是Student和student在…

大家好,又见面了,我是你们的朋友全栈君。

和C/C++、Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而提高编写代码的效率。
我们在平常编写程序的时候需要注意以下几点:

一、python变量名命名的硬性规则

1.1. 变量名大小写敏感

python变量名区分大小写,也就是Student和student在python语言中代表两个不同的名字。

1.2. python的变量名字中可以包含英文、下划线、数字,但是不能以数字开头。

也就是说,student_id、student1、student_1、student、_student、_等都是合理的命名,但是1student就是非法的命名。

二、不同风格命名的变量代表不同的类型

与java中命名习惯使用驼峰命名法不同(有可能发明java的程序猿大哥不但喜欢喝爪哇岛的咖啡,也喜欢骑爪哇岛上的骆驼,哈哈),python变量命名一般采用蛇形命名法(毕竟python的本意就是大蟒蛇),也就是如果变量名由两个单词组成,那么使用下划线来连接这两个单词,比如student_id。当然,我们也会在python中看到类似驼峰命名法的变量名,对于专业的程序猿来说,这些命名都不是随便写的,他们符合一定的标准,下面总结以下:

2.1.模块(module)命名风格

模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)

# 正确的模块名
import decoder
import html_parser

# 不推荐的模块名
import Decoder

2.2.类(class)的命名

类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头

class Farm():
    pass

class AnimalFarm(Farm):
    pass

class _PrivateFarm(Farm):
    pass

2.3.函数(function)的命名

函数名一律小写,如有多个单词,用下划线隔开。

def run():
    pass

def run_with_env():
    pass

2.4.变量(variable)的命名

变量名尽量小写, 如有多个单词,用下划线隔开

if __name__ == '__main__':
    count = 0
    school_name = ''

2.5.常量(constant)的命名

如果我们想用一个符号来代表常量(值是不变的量,比如光速、π等),采用全部大写,如有多个单词,使用下划线隔开。

MAX_CLIENT = 100
MAX_CONNECTION = 1000
CONNECTION_TIMEOUT = 600

三、“下划线”开头的特殊命名

很多时候,我们在python的源代码中会看到下划线开头的变量,初学者看到这些变量会感觉怪怪的。确实,这些“_”开头的命名是具有特殊含义的:

3.1.单下划线开头的命名

  • 如果类变量以单下划线“_”开头,代表这个变量不能被直接访问,类似于C++中的protected型,这样的变量也不能被 import
    module_name导入。
  • 使用单下划线(one underline)开头的方法,则表示该方法不是AP的一部分,不要直接访问(虽然语法上访问也没有什么问题)。

3.2.双下划线开头的命名

  • 以双下划线(two underlines)开头的类变量,表示为类的私有成员,不能被导入和其他类变量访问。
  • 对于类中的方法,使用双下划线开头开头表示子类不能覆写该方法。除非你真的知道你在干什么,否则不要使用这种方式。

3.3.双下划线开头并且双下划线结尾的命名

魔法方法:以双下划线开头和双下划线结尾的变量是Python的专用标识,有其特殊的身份。我们一般称这样的方法为“魔法方法”(magic method)。

  • 魔法方法是python内置方法,不需要主动调用,存在的目的是为了给python的解释器进行调用,几乎每个魔法方法都有一个对应的内置函数,或者运算符,当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法,可以理解为重写这些python的内置函数。
  • 当你想让自己定义的对象也可以像Python内置的对象一样使用内置的一些函数或操作符(比如len、add、+、、==等)时,你可以定义该类方法。
  • 当然还有些属性只在末尾加了但下划线这仅仅是为了避免我们起的一些名字和Python保留关键字冲突,没有特殊含义。
  • 下划线变量(方法)的使用,往往和面向对象编程中类(class)的设计相关,更多更深入的知识,可以参考 这篇博客。当然,如果需要了解更多python编程规范,PEP8(Python Enhancement Proposal8)的官方文档是最佳的参考资料。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142053.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 五种matlab读取excel文件方法

    五种matlab读取excel文件方法读取 excel 文件的五种方式 readcell filename 以 cell 元胞数组 注 访问 cell 元素用 格式导入所有信息 空格被识别为 missing 用 strcmp class references 2 3 missing 来判定 若为 1 则说明为空 最省事的方法 NUM TXT RAW xlsread filename NUM 返回的是 excel 中的数据 TXT 输出的是文本内容 RAW 输出的是未处理数据 一般情况下 我们直接用 reference xlsread exa

    2025年9月26日
    2
  • samba服务器创建用户_局域网nas搭建

    samba服务器创建用户_局域网nas搭建服务端白色背景192。168。100.第一步配置SAMBA创建新用户穿件共享文件夹和配置创建共享文件,给文件夹分组重启服务systemctlstartsmb第二步进入客户端配置查看挂载是否成功第三步进行验证先在主机端进入文件夹创建文件,再在客户端查看第四步在客户端进行验证通过验证证明了客户端和服务端能相互创建…

    2022年9月25日
    2
  • UEditor前端配置项说明

    UEditor前端配置项说明

    2021年11月5日
    64
  • servlet中使用db4o

    servlet中使用db4o   在web的工程如果想使用db4o,是不能直接使用的,如果想使用的就得做一些初始化的工作,以便在servlet中使用,具体可以看下面的两个网页有详细的介绍:   http://java.dzone.com/articles/db4o-java http://community.versant.com/documentation/reference/db4o-8.1/java/re…

    2022年7月21日
    14
  • iphone个系列尺寸_iphone12哪个尺寸好 iphone12系列尺寸参数对比

    iphone个系列尺寸_iphone12哪个尺寸好 iphone12系列尺寸参数对比近日,iphone12系列手机发布引起各界广泛关注,关于iphone12系列的四款手机,大家也不知道该如何选择。这四款手机的尺寸大小都不相同,对于手机大小的选择,很多人不知道哪款比较合适。那么iphone12哪个尺寸好?该选择哪个尺寸的手机呢?下面小编就为大家介绍一下iphone12系列手机的尺寸参数对比,希望为大家提供参考帮助。iphone12哪个尺寸好?1、iPhone12mini(5.4英寸…

    2022年5月14日
    54
  • Java实现AES加密与解密(秘钥)

    Java实现AES加密与解密(秘钥)

    2021年4月9日
    153

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号