和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)的官方文档是最佳的参考资料。

到此这篇关于一文轻松掌握python语言命名规范规则的文章就介绍到这了,更多相关python命名规范 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

python语言命名规则-一文轻松掌握python语言命名规范规则相关推荐

  1. python语言在命名上是什么敏感的_一文轻松掌握python语言命名规范规则

    和C/C++.Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而 ...

  2. 480集课程-打通Python开发的任督二脉 轻松掌握Python高级开发技术 Python超级学科课程

    480集课程-打通Python开发的任督二脉 轻松掌握Python高级开发技术 Python超级学科课程 ===============课程目录=============== ├─(1) 01-Pyt ...

  3. python高效开发实战配套源文件_分享12个python使用技巧,助你轻松掌握Python高效开发...

    前言: 欢迎大家收看分享12个python使用技巧,助你轻松掌握Python高效开发!部分代码用图片的方式呈现出来,方便各位观看与收藏,要是喜欢的话,记得一定不要忘记点赞关注嗷! 内容如下: 1. 隐 ...

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

    和C/C++.Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而 ...

  5. 零基础学python全彩版pdf-(特价书)零基础轻松学Python:青少年趣味编程(全彩版)...

    基本信息 作者: 快学习教育 出版社:机械工业出版社 ISBN:9787111640004E上架时间:2020-5-26出版日期:2019 年11月开本:16开页码:176版次:1-1 所属分类: 科 ...

  6. python爬虫ppt_完全零基础 轻松学Python:数据类型:数字类型、空类型、布尔类型...

    Tip:点击上方或此处 "#完全零基础 轻松学Python" 话题,查看更多内容,欢迎点赞.分享.收藏,谢谢支持! 内 容 概 要 1. 数据类型概述 数据类型的概念.常见的八种数 ...

  7. python读取枚举_一文读懂Python 枚举

    enum是一组绑定到唯一常数值的符号名称,并且具备可迭代性和可比较性的特性.我们可以使用 enum 创建具有良好定义的标识符,而不是直接使用魔法字符串或整数,也便于开发工程师的代码维护. 创建枚举 我 ...

  8. python怎么读写文件-一文看懂Python文件的读取写入操作,建议收藏-bak文件怎么打开...

    文件的读取写入操作 读取文件read() 假设我们有一个与操作文件同级的1.txt文档with open('pi_digits.txt') as file_object: contents = fil ...

  9. python编程学习_使用EduBlocks轻松学习Python编程

    python编程学习 如果您正在寻找一种让学生(或您自己)从Scratch编程转向学习Python的方法 ,建议您研究EduBlocks . 它为Python 3编程带来了熟悉的拖放式图形用户界面(G ...

最新文章

  1. cookie+memcached实现单点登陆
  2. python 内存回收机制_【第1题】 Pythonn内存管理以及垃圾回收机制
  3. 分享自己作为一个程序员的找工作经历
  4. 2019手机浏览器排名_不开玩乐!2019最强手机浏览器
  5. 「题解」:[BZOJ4558]方
  6. CodeM资格赛 Round A 最长树链
  7. iOS应用开发模板 iOS Boilerplate
  8. 我在试验Memcached,你的项目怎么处理缓存?
  9. Java通过坐标点进行拟合函数
  10. 【我的世界Minecraft-MC】常见及各种指令大杂烩【2022.8版】
  11. 中国象棋(人机博弈)
  12. KendoGrid的使用
  13. hadoop操作出现:9000 failed on connection exception: java.net.ConnectException:拒绝访问(已解决)
  14. Bluetooth协议
  15. 前端之TypeScript(TS)
  16. linux sudo log
  17. 为你的博客添加标题栏图标
  18. 解决 macOS Monterey 启动不了泰拉瑞亚 (sdl2)
  19. 安卓国际化之strings.xml导入Excel表格及从excel恢复到Strings.xml中
  20. P2P平台投宝金融跑路?为什么我没有中雷!

热门文章

  1. python报错:SyntaxError: Missing parentheses in call to ‘exec‘
  2. webp文件怎么打开?webp压缩工具推荐
  3. Can‘t bind to ‘ngForOf‘ since it isn‘t a known property of ‘xxx‘
  4. TPH-YOLOv5简述
  5. BPI-M1P(全志A20)刷Android启动卡之后启动的过程
  6. Unity 2018之ShaderGraph使用基础
  7. 中国人不骗中国人,我的猜拳平平无奇。。
  8. 以静制动的TensorFlow Fold
  9. IIS站点配置和DW CS6连接Access数据库
  10. APS高级计划排程和生产计划排产系统电子行业的解决方案