【从零学Python】关于python下划线命名的事儿、enumerate()
一、 Python 的类的下划线命名有什么不同
1,以一个下划线开头的命名 ,如_getFile
这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入。
2,以两个下划线开头的命名 ,如__filename .
双下划线开头的命名形式在 Python 的类成员中使用表示名字改编 (Name Mangling),即如果有一 Test 类里有一成员 __x,那么 dir(Test) 时会看到 _Test__x 而非 __ x。这是为了避免该成员的名称与子类中的名称冲突。但要注意这要求该名称末尾没有下划线。
3,以两个下划线开头和结尾的命名,如 init()
双下划线开头双下划线结尾的是一些 Python 的“魔术”对象,如类成员的 init、del、add、getitem 等,以及全局的 file、name 等。Python 官方推荐永远不要将这样的命名方式应用于自己的变量或函数,而是按照文档说明来使用。
4,其它
在 Python 的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需要一个变量叫做 class,但 class 是 Python 的关键词,就可以以单下划线结尾写作 class_。
二、enumerate()
enumerate()函数用于将一个可遍历的数据对象(列表、元组、字符串等)组合为一个索引序列,同时列出数据下标和数据
在运行C3D代码时,遇到一行代码:labels={label:index for index,label in enumerate(sorted(set(a)))}
,又一次读不懂字典所表示的含义。
a=[1,2,3,4,5,8,1,2,0]
b=sorted(a)
print(b)
for index,label in enumerate(sorted(set(a))):print("index,label",index,label)
labels={label:index for index,label in enumerate(sorted(set(a)))}
print(labels)
c=set(a)
print(c)
输出
[0, 1, 1, 2, 2, 3, 4, 5, 8]index,label 0 0index,label 1 1index,label 2 2index,label 3 3index,label 4 4index,label 5 5index,label 6 8{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 8: 6}{0, 1, 2, 3, 4, 5, 8}
如上述代码所示,应该将labels={label:index for index,label in enumerate(sorted(set(a)))}
拆分为
for index,label in enumerate(sorted(set(a))):labels[label] = index
【从零学Python】关于python下划线命名的事儿、enumerate()相关推荐
- python怎么打下划线符号_详解 Python 中的下划线命名规则
在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后--那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...
- 学习笔记——使用下划线命名的规则
在刷牛客时遇到一道关于python中使用下划线命名的题,我重复刷了两次了还是做错...所以今天就把这题给记录下来 (不定项选择题) Python中单下划线foo与双下划线_ foo与__ foo__ ...
- Python中单个下划线“ _”变量的用途是什么?
这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...
- python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...
Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...
- python 下划线转驼峰_json字符串中key值下划线命名转换为驼峰命名
json字符串中key值下划线命名转换为驼峰命名: 例如: 原json串: String json= "{'user_name':'ok','user_sex':0,'object_info ...
- Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...
- Python中单个下划线“_”变量的目的是什么?
在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...
- python中不被定义_一日一技:在Python中双下划线私有方法不能被调用的原理
一日一技:在Python中双下划线私有方法不能被调用的原理 在使用Python编写面向对象的代码时,我们会常常使用"继承"这种开发方式.例如下面这一段代码: class Info: ...
- python中的下划线_讲解
python中,下划线 "_""_"" \_" 不管是单独作为变量名或者作为变量名的前缀或者后缀,是有特殊含义的,下面简要的来总结一下. 1 ...
最新文章
- AI干货系列一:为什么AI预测更智能?
- java fft 频谱算法_快速傅里叶变换(FFT)算法原理及代码解析
- 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
- java 极客_Java极客思维
- Spring Cloud 入门 之 Eureka 篇(一)
- halcon算子翻译——estimate_noise
- 【数学建模】基于matlab GUI弱肉强食问题—Volterra 模型【含Matlab源码 1502期】
- ios根据服务器修改App名称,iOS 修改APP工程名字
- 安卓10自带录屏_荣耀v10怎么录屏?荣耀v10三种录屏方法
- MSP430F149--点亮LED灯程序代码
- 使用电脑微信扫描二维码
- 矩阵乘法求解多项式递推问题
- iPhone解锁的三种方法【附全型号进入恢复模式方法】
- 5年市值蒸发2000多亿 绿地控股二次混改能否迎来春天?
- centos搭建mysql、nginx、nodejs、screen
- linux 内核配置简介
- 【学习】大数据关键技术
- C语言入门技巧·使用注释快捷键完成单行注释和多行注释的技巧
- 临河三中宏志班2021年高考成绩查询,临河三中名教师简介一
- STM32F030F4P6 HAL库 PPM信号输出 24L01 PPM接收机制作
热门文章
- nginx反向代理配置去除前缀问题
- 替换 PPT 中的视频、音频文件试试这款国产控件
- repository.save() 无效 无法保存数据
- 视频一键批量去重的方法与软件实现案例-咚咚剪辑
- python排序算法——冒泡排序
- 《一步一脚印 90后程序员》4
- 统计图表-BigDecimal-换算百分比-加一起不满足100%
- 视频教程-项目实战视频课程:美团小程序(Node.js+Express+支付)-微信开发
- smc数显压力表设定方法_SMC真空压力表 使用手册.pdf
- java pkcs1padding_RSA/ECB/PKCS1Padding加密