和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():passclass AnimalFarm(Farm):passclass _PrivateFarm(Farm):pass

2.3.函数(function)的命名

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

def run():passdef run_with_env():pass

2.4.变量(variable)的命名

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

if __name__ == '__main__':count = 0school_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语言命名规则(规范)相关推荐

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

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

  2. python语言命名规则-一文轻松掌握python语言命名规范规则

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

  3. 不符合python命名规则的是_下面不符合Python语言命名规则的是__________。

    [单选题]土方开挖时,底宽 8 米.底长 18 米.挖深 2 米,应套用的土方开挖形式为( ). [多选题]如果正常生产年份的偿债备付率低于 1 ,则说明( ). [简答题]什么是无限能力计划?若企业 ...

  4. python标识符命名规则

    python标识符命名规则 什么是标识符 标识符: 现阶段学习的变量名, 后期会学习的函数名,类名这些都是标识符. 简单来说就是程序中所有的名字的总称就是标识符. 标识符的名字是不能乱起的, 就像手机 ...

  5. python变量命名规则_Python教程第9篇:牢记Python变量命名5大规则

    上一节课我们通过几行代码来理解Python变量,不知道你都动手操作了吗?Python变量名不是随便乱起的哈,需要遵循以下规则:1.  只能字母.下划线开头,不能数字开头.变量用小写字母开头是 Pyth ...

  6. 【Python】标识符 ( Python 标识符命名规则 - 强制性 | 内容限定 | 大小写敏感 | 非关键字 | Python 标识符命名规范 - 建议性 | 下划线命名法 | 英文字母全小写 )

    文章目录 一.Python 标识符 1.Python 标识符命名规则 ( 强制性 ) 2.Python 标识符命名规范 ( 建议性 ) 二.代码示例 1.内容限定代码示例 2.大小写敏感 3.非关键字 ...

  7. python基础-命名规则

    一.变量 由字母.数字.下划线组成,不能以数字开头,下划线开头尽量不用 不能使用python的保留字 严格区分大小写 可用中文命名,但是不建议使用 尽量取有意义的名字 user_name = '张三' ...

  8. Python语言语法描述规范BNF介绍

    Python语言语法描述规范BNF介绍 读官方的 Python 语言参考(The Python Language Reference)需要了解BNF. BNF(Backus Normal Form:巴 ...

  9. java变量命名规则_Java变量命名规则规范

    Java变量命名规则规范 分类 Camel 标记法:首字母是小写的,接下来的单词都以大写字母开头 Pascal 标记法:首字母是大写的,接下来的单词都以大写字母开头 匈牙利标记法:在以Pascal标记 ...

最新文章

  1. 开发人员应该对IIS理论层的知识了解的多一些~第四讲 HttpModule中的几大事件
  2. 学习旧岛小程序 (2) 自定义组件
  3. 多而杂不会成为重点-丰收节贸易会:未来农业的发展方向
  4. Kafka淘汰倒计时!这个新一代消息中间件,腾讯、华为都用疯了?
  5. Oracle数据库更新时间的SQL语句
  6. 【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)
  7. mysql 权限管理无效_mysql 权限控制笔记
  8. Unity播放声音的两种方式以及相关遇到的
  9. UnityWebPlayer使用(1) 单机环境下在WinForm中使用Unity3d
  10. 单片机原理及应用复习
  11. 百度文库会员制度悄然上线
  12. js实现简单的有序map
  13. 把项目部署在腾讯云服务器上详细内容教程
  14. iSCSI客户端配置
  15. Linux(2019年)-10.11
  16. 高山流水 (余秋雨)
  17. 【CF1092F】 Tree with Maximum Cost
  18. 简单的投屏、数据大屏前端代码
  19. S9306基本的DHCP-RELAY的应用
  20. Sublime Text 3安装破解+汉化包 + 教程

热门文章

  1. python多线程下载小姐姐图片
  2. Lua 报错 PANIC: unprotected error in call to Lua API (no calling environment) 解决办法
  3. comsol纳米光学案例分析
  4. 高性能v100 gpu服务器,TESLA V100 GPU 加速性能指南
  5. Html5 Egret游戏开发 成语大挑战(一)开篇
  6. 找呀找呀找朋友简谱用计算机弹,儿歌找朋友简谱_儿歌找朋友歌词歌谱
  7. ubuntu18.04-ros-melodic-carlar安装教程详细指南
  8. 教你学Java | 带你学习Java多线程(续:创建线程的其他方式与activeCount方法的浅谈)
  9. dell服务器维修服务网点,上海戴尔服务器*维修点 戴尔服务器不开机死机电源主板维修*换...
  10. 基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar