命名惯用法 回忆上次内容
  • 上次 了解了isidentifier的细节
  • 关于 关键字
  • 关于 下划线
 
  • 如何查询 变量所指向的地址?
  • id
 
  • 如何查询 已有的各种变量?
  • locals
 
  • 如果 用一个变量a的值
  • 给另一个变量b 赋值
  • 是什么样的过程 呢??
 
指向
  • 声明变量a 并赋值为1
  • 是个数字变量
  • 是一个容器
  • 指向地址的值为1
 

 
添加图片注释,不超过 140 字(可选)
 
  • 声明b变量
  • 并且把a所指向的地址
  • 赋给容器b
 
  • 这样a和b指向同一个地址
  • 如果再把2赋给a呢?
再赋值
  • 当对a重新赋值的时候
  • a指向一个新的地址
  • b仍然指向原来的地址
 

 
添加图片注释,不超过 140 字(可选)
 
  • 那可以 在一行快速对两个变量 进行赋值 么?
  • 连等 赋值 可以吗?
  • a = b = 3
 
 
连等赋值
  • 可以一次赋值 好几个变量

 
添加图片注释,不超过 140 字(可选)
 
  • 确实可以
  • 这样 也可以 提高效率
 

 
添加图片注释,不超过 140 字(可选)
 
  • 其实 这两个等号
  • 相当于 两次声明并赋值
  • 先算的 是左边的
  • b = 3
 
  • 后算的 是右边的
  • a = b
 
 
  • 能否同时给两个变量赋不同的值?
一行赋值

 
添加图片注释,不超过 140 字(可选)
 
  • 这种情况经过一个解包过程
  • UNPACK过程
  • 将(3, 5)进行解包
 
  • 然后分别STORE进a, b
  • a, b 这些标识符还是比较简单的
  • 如果一个变量中有两个以上的单词组成
  • 比如说this year
 
  • 这个变量名应该怎么写呢?
大小写惯例
  • 关于单词的大小写方式
  • 叫做case convention
  • 大小写惯例
 
 
  • 有一些套路的

 
添加图片注释,不超过 140 字(可选)
 
  • 都有哪些 命名惯用法 呢?
三大标识符惯用法
  • 帕斯卡
  • 所有单词首字母大写
  • ThisYear
  • java中很常见的类名和变量名
 
  • 小驼峰
  • 首单词都小写,后面的首字母大写
  • setThisYear
  • java中的函数经常这么写
 
  • 蛇形
  • this_year
 

 
添加图片注释,不超过 140 字(可选)
 
  • python选的是哪个呢?
蛇形

 
添加图片注释,不超过 140 字(可选)
 
  • python几乎所有的标识符都用的是蛇形
  • 变量名
  • 函数名
  • 方法名
  • 模块名
  • 包名
 

 
添加图片注释,不超过 140 字(可选)
 
  • python为什么这么偏爱蛇形呢?
溯源
  • PASCAL本质上是驼峰类中的大驼峰

 
添加图片注释,不超过 140 字(可选)
 
  • 后来c语言和unix的出现
  • 同时带了一种新的命名惯用法
 
新的惯用法
  • 这种惯例出现在c、unix的源代码中
  • 也出现在The C Programming Language 这本书里面
 

 
添加图片注释,不超过 140 字(可选)
 
  • 以下划线作为分隔符
  • 很像空格但不是空格
 
  • 但是他和蛇有什么关系
蛇形命名
  • 蛇形命名方式起源于 1960 年代
  • 那时它甚至还没有特定的名称
  • 就是被叫做"带下划线的小写命名"
  • lower_case_with_underscores
 
  • Guido不喜欢大写字母
  • 因为觉得大写字母很装
  • 小写字母很舒服
  • 单程序里面必须要表示分隔符
  • python 从 c 语言中借鉴了下划线的命名法
  • 这个分隔符_在python中无处不在
  • 比如__builtins__、__py_cache__
  • 这种命名法的名字为lower_case_with_underscores
  • 但这名字拗口而且很难记
 
  • 2002年
  • intel和微软的员工在内部交流的时候
  • 起了snake_case名字
  • 很像蛇匍匐在地上
 
  • 2004年
  • ruby社区里面 Gavin Kistner 开始在Usenet上使用
  • 并且流传开来
 
  • 2015年
  • 根据下划线派生的
  • 中划线和上划线(lisp-case, kebab-case)的命名法也出现了
 
多单词命名法格式

 
添加图片注释,不超过 140 字(可选)
 
  • 这些就是关于命名法的资料
  • 还记得我们曾经的show_time.py吗?
  • show_time 是 哪种 命名惯用法 呢?
 
  • 我们去总结一下吧
总结
  • 这次研究了 一行赋值多个变量
  • a = b = 5
  • a, b = 7, 8
 
  • 还研究了 标识符的惯用法
  • python使用的是
  • snake_case蛇形命名法
  • 用下划线 分隔开小写字母的 方法
  • 这样就可以 更合理地 命名变量了
 
 
  • 变量变量 能变的量
  • 我可以 通过键盘录入 变量的值 吗?
 


[oeasy]python0135_命名惯用法_name_convention的更多相关文章

  1. RAII惯用法:C++资源管理的利器(转)

    RAII惯用法:C++资源管理的利器 RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写.中文可将其翻 ...

  2. 做个地道的c++程序猿:copy and swap惯用法

    如果你对外语感兴趣,那肯定听过"idiom"这个词.牛津词典对于它的解释叫惯用语,再精简一些可以叫"成语".想要掌握一门语言,其中的"成语" ...

  3. Erase-Remove 惯用法

    看到<Effective STL>条款 9 的时候想到了我以前复习的"如何正确使用迭代器删除元素",我面试时使用的也是里面的方法,看面试官的反应好像也没有什么问题,还问 ...

  4. C++惯用法:通过成员模板实现隐式转换(Coercion 强迫 by Member Template)

    Intent To increase the flexibility of a class template's interface by allowing the class template to ...

  5. ibatis.net:惯用法

    使用<![CDATA[]]>保持SQL格式 IN 查询

  6. C++之RAII惯用法

    http://blog.csdn.net/hunter8777/article/details/6327704 C++中的RAII全称是“Resource acquisition is initial ...

  7. Python惯用法

    目录 1. 不要使用可变类型作为参数的默认值 1. 不要使用可变类型作为参数的默认值 摘自<流畅的Python>8.4.1 class HauntedBus: ""&q ...

  8. golang channel 用法转的

    一.Golang并发基础理论 Golang在并发设计方面参考了C.A.R Hoare的CSP,即Communicating Sequential Processes并发模型理论.但就像John Gra ...

  9. C语言宏高级用法

    1.前言  今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...

  10. Golang Channel用法简编

    转自:http://tonybai.com/2014/09/29/a-channel-compendium-for-golang/ 在进入正式内容前,我这里先顺便转发一则消息,那就是Golang 1. ...

随机推荐

  1. Oracle批量插入和更新

    一.驱动.使用Oracle.ManagedDataAccess.Client 二.原理.利用OracleCommand的ArrayBindCount属性设置批量大小. 三.实现 函数使用的实体是efc ...

  2. .net core C# DataTable 和List之间相互转换的方法

    一.List<T>/IEnumerable转换到DataTable/DataView 方法一: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  3. Java中File类和I/O

    目录 File 类 File 构造方法 输入输出(I/O) 字节流与字符流 输入流与输出流 输入输出字节流 构造方法 方法 InputStream 基本方法 public int read() thr ...

  4. 在AngularJS中,控制器没有生命周期方法

    在AngularJS中,控制器没有生命周期方法,但是$scope对象有一些事件,可以模拟生命周期方法的行为.例如,$scope.$on('$destroy', function() {...})可以在 ...

  5. elementUI slider组件,带范围选择实现双向绑定

    网上查过很多相关文章都没有一章是写element ui滑块带范围实现双向绑定 二个滑块二头的数据怎么得到 我的需求是做个时间轴要滑动选择不同的时间 开始很难做最后一点一点摸索得出的结论 好在写出来了先 ...

  6. zkq 数学听课笔记

    线性代数 域 \(F\),OI 中常用的域是 \(\Z_{p^c}\). \(n\) 维向量 \(\vec x \in F^n\),其中 \(x_i \in F\),注意向量是列向量. \(F^n\) ...

  7. SpringBoot系列(七) jpa的使用,以增删改查为例

    JPA是Java Persistence API的简称,Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 它是SUN公司推出的一套基 ...

  8. INFINI Labs 产品更新 | Console 数据迁移支持 Percentiles 均匀分区

    INFINI Labs 产品又更新啦~,包括 Console v1.14.0,Gateway 1.21.0.其中 Console 数据迁移支持 Percentiles 均匀分区,修复已知 Bug 等. ...

  9. 极限科技旗下软件产品 INFINI Easysearch 通过统信 UOS 认证

    近日,极限数据 (北京) 科技有限公司(以下简称:极限科技)旗下的软件 INFINI Easysearch 搜索引擎软件 V1.0 通过统信 UOS 服务器操作系统 V20 认证. 此次兼容适配基于统 ...

  10. C# .NET 操作Windows hosts

    C# .NET 操作Windows hosts 工具类HostsUtil: using System; using System.IO; using System.Text; namespace Co ...