一文轻松掌握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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ip addr命令详解_c++中add是什么意思

    ip addr命令详解_c++中add是什么意思OverviewTheipcommandisaLinuxnet-toolforsystemandnetworkadministators.TheipcommandreplacesoldgoodandnowdeprecatedifconfigcommandonmodernLinuxdistributions.用法ip[options]OBJECTCOMMANDipaddr#查看ipethomeansEthernet,wl..

    2022年7月27日
    6
  • matlab画三维图如何更改颜色,MATLAB画三维图像「建议收藏」

    matlab画三维图如何更改颜色,MATLAB画三维图像「建议收藏」姓名:刘肖珊学号:19021210919【嵌牛导读】:matlab是一款功能强大的编程软件,三维图像常用,文章介绍matlab如何画三维图像【嵌牛鼻子】:MATLAB、三维图【嵌牛提问】:matlab如何画三维图像?【嵌牛正文】:当我们学习surface命令时,已经看到了三维作图的一些端倪。在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像。首先,我们用z=cos(x)sin(…

    2022年10月11日
    3
  • MySQL常用SQL语句大全

    MySQL常用SQL语句大全MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle、MS-SQL,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构。MySQL之所以能够被数以万计的网站采用,也是由此而来。

    2022年6月13日
    25
  • CSS属性

    CSS属性

    2022年3月4日
    34
  • 关于高德地图标注的那些坑

    关于高德地图标注的那些坑关于高德地图标注的那些坑。先说一下自己遇到的问题:在地图加载完成后自动弹出自定义的标注点和气泡框,然后当点击气泡框的时候,可以直接响应气泡框上的Button事件。

    2022年5月22日
    400
  • java游戏激活成功教程版盒子,37游戏盒子-37游戏盒子最新版 v4.0.0.4 官方版[通俗易懂]

    java游戏激活成功教程版盒子,37游戏盒子-37游戏盒子最新版 v4.0.0.4 官方版[通俗易懂]37游戏盒子37游戏盒子最新版是一款提供游戏下载辅助软件。37游戏盒子最新版内置海量游戏而且不断更新,让玩家不必到处找游戏。而且还会自动去检测游戏所需要的软件和硬件环境,玩家只需轻松一点,就可以实现游戏的下载、安装、运行全部过程。37游戏盒子最新版特色说明:1、内置海量游戏,不断更新,不必到处找游戏。2、只需轻松一点,实现游戏的下载、安装、运行,减少用户麻烦,节省玩家时间。3、斥资千万,全新搭建智…

    2022年7月7日
    41

发表回复

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

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