[oeasy]python0135_变量名与下划线_dunder_声明与赋值
- 变量 就是 能变的量
- 上次研究了 变量标识符的 规则
- 第一个字符 应该是 字母或下划线
- 合法的标识符可以包括
- 大小写字母
- 数字
- 下划线
- 还研究了字符串(str)的函数
- isidentifier
- 查询字符串
- 是否为合法标识符
- 最后发现
- 这个isidentifier函数有时候不好使?

- 这怎么理解呢??
- and 属于关键字

- 如何判断一个字符串是否是关键字呢?


- 关键字 是不能作为标识符的
- dir()查询模块的时候
- 经常会看到下划线

- 这些下划线如何理解?
- from module import * 时
- 以下划线开头的变量
- 不被其他模块引用

- 所以 _a 可以作为模块内部的变量或者函数
- 除非明确点名

- 指清名字 _pi
- 是可以导入的
- 不点名不能用吗?

- from random import *
- 无法导入_e

- 在游乐场里
- _下划线 意味着上次的值

- 在后面加上下划线
- 一般是为了区分已经有的标识符

- 使用max
- 会把max函数 屏蔽掉
- 使用max_
- 不会屏蔽 max函数

- 系统定义的标识符
- 模块名
- 函数名
- 变量名

- dunder变量都是有用意的
- 不要轻易破坏
- 类里面的私有名
- 无法直接存取
- 目的是
- 避免 和 父类或子类的私有变量 重名

- 我们再来看看 o 这个变量标识符
- o 两边并不加引号
- 因为 这里的 o 是 变量标识符
- 而不是 字符串
- 如果加了双引号 就是字符串了

- 在等号两端 都保留 有一个空格
- 可是 为什么要 加空格呢?
- 增加文档的可读性
- 这不会 影响程序的执行速度

- 这两句话从何说起
- 这两句话来自于python之禅

- 现在到底有多少变量呢?
- 查询本地变量
- 有一个内置的函数叫做 locals

- 可以查询关于 locals 的帮助

- 返回的是一个包含当前域中所有变量的字典
- 声明和赋值都使用等号
- 声明并赋值 变量o 之后
- 变量o 真的在内存里有位置了么?
- 我们来看看

- id函数是什么意思?
- help(id)

- id返回 对象o的标识符
- o 确实在内存中 有了位置
- 但是如果 我们给变量新赋 一个值
- 那么 存储变量的位置
- 还是那个 内存地址 么?
- 虽然 a这个变量名 没有变
- 但是 id(a)变了

- 也就是说
- a这个容器的 内存位置没变
- 但是a所指向的 变量位置
- 在内存中的位置 变了
- 两次赋值 都是STORE到a这个NAME里面
- 第二次赋值 和 第一次赋值
- 有什么区别吗?
- 变量的声明和赋值究竟有什么不同
- 第一次赋值时
- 声明和赋值是同时完成的

- 如果是 第二次赋值 呢?
- 声明了之后
- 再有 等号赋值 就是 第二次赋值

- 是 纯赋值
- 没有声明新的变量
- 这次 了解了isidentifier的细节
- 关于 关键字
- 关于 下划线
- 如何查询 变量所指向的地址?
- id
- 如何查询 已有的各种变量?
- locals
- 如果 用一个变量a的值
- 给另一个变量b 赋值
- 是什么样的过程 呢??
- 我们下次再说!
[oeasy]python0135_变量名与下划线_dunder_声明与赋值的更多相关文章
- 【已解决】SpringBoot + Mybatis-plus 实体类属性注解 @TableField 无法获取到数据库值(属性变量名带下划线)
问题描述: 实体类变量的命名格式 如果采用的是 XX_XX带下划线的形式,那么在低版本的mybatis-plus是不支持和数据库映射的. 如果是单个单词不存在这个问题,如果出现多个单词,尽量采用驼峰式 ...
- geotools导入shp文件到Oracle数据库时表名带下划线的问题解决
问题: 最近在做利用geotools导入shp文件到Oracle表中,发现一个问题Oracle表名带下划线时导入失败,问题代码行: dsOracle.getFeatureWriterAppend(or ...
- _ 下划线 vue mixins 混入 变量前有下划线 变量不起作用
_ 下划线 vue mixins 混入 变量前有下划线 变量不起作用
- python变量前的单下划线(私有变量)和双下划线()
1.单下划线 变量前的单下划线表示表面上私有 ,但是其实这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意 ...
- python 私有和保护成员变量如何实现?—— "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量;" 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据
默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量 ...
- Latex—IEEE Latex模板 期刊名带下划线的问题解决
其实期刊名应该是斜体字的,但是有可能默认模板会导致斜体变下划线的问题,解决方法如下 引用包: \usepackage{ulem} %to strike the words 然后再在: \bibliog ...
- thinkphp如果表名有下划线需要用Model
模型命名规范 ThinkPHP 对数据库的表名和模型类的命名遵循一定的规范.首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义. ...
- Python中类的变量,一个下划线与两个下划线的区别
形似 功能 __xx 这是私有变量, 只有内部可以访问,外部不可以访问.但是也不是一定不可以访问,只要以 _类名__xx样式就可以访问 .但最好不要这样做,养成良好编程习惯 _x 这是实例 ...
- vue里面的v-model的变量不要使用下划线
遇到一个问题,就是如果变量名是text_right,的时候更改v-model的值,则text_right不会更新,如果改成textRight就会更新,目前还不知道原因,先记录下来
- ThinkPHP如果表名有下划线需要用Model应该怎么做?
最近遇到一个问题,在用TP做系统的时候,我建立的表是 “tp_admin_user” 但是要用到的模型是 “AdminUserModel.model.class.php”,应该如何做? 解决方法: & ...
随机推荐
- pytorch(GPU版)安装
确认有无英伟达显卡,有才能安装GPU版的pytorch,否则只能装CPU版 1.任务管理器->性能: 设备管理器->显示适配器,也可以: nvidia驱动安装地址(大部分电脑自带,不需要额 ...
- 胃食管反流之 SAP分析( in the Ohmega software)
原文:https://note.youdao.com/s/GED6wise SAP analysis in the Ohmega software ohmega software 关于胃食管反流疾病 ...
- JavaScript 中 toString 的奇妙使用
JavaScript 中的toString()方法,我们通常会一些其他类型的变量,转为字符串类型.但这里还有一些其他奇妙的用法. 不同的类型调用 toString() 会得到不同的结果.我们来一一分析 ...
- WPF之单例模式
项目 2019/10/09 问题 2019年10月9日星期三 上午2:46 1.为了实现单例模式,在App类中添加了如下代码,使用了信号量,但是为什么返回;isNew一直为true public ...
- 【已解决】docker overlay2占用大量磁盘空间处理方法
在使用docker容器的时候遇到了容量上的问题,做一个记录 处理方式1:在使用docker时,往往会出现磁盘空间不足,导致该问题的通常原因是因为docker中部署的系统输出了大量的日志内容. 此时,可 ...
- switch case 跳转表
一.事情来源 事情来源是一段奇怪的代码,代码如下 int x = 1000; switch (x) { case 1000: { NSLog(@"%d", 1); } case 2 ...
- 8.13考试总结(NOIP模拟38)[a·b·c]
重要的不是你做了多少事,而是你放了多少心思进去. T1 a 解题思路 总结一下,是双指针运用不够熟练(zxb笑了笑). 其实这个题是可以用树状数组卡过的(众所周知我是一个正直的人),但是一定是要打正解 ...
- js 实现仿百度换肤效果
图片自行换掉即可查看效果,原理就是基于tab切换的效果实现的 效果图 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <met ...
- 「C++」深度分析C++中i++与++i的区别
大家好,我是Charzie.在C++编程中,i++和++i是两个常见的自增运算符,用于将变量的值增加1(有时与i+=1效果一样).然而,虽然它们的功能看似相似,但在实际使用中却存在显著的区别.本博客将 ...
- while适用于不确定循环次数
// 当前有一个随机数,是生成100-999的随机数值 // 需要生成数值666,需要知道循环了多少次,才生成的666这个数值 // 我们可以通过循环来实现 ...