一、 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()相关推荐

  1. python怎么打下划线符号_详解 Python 中的下划线命名规则

    在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后--那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...

  2. 学习笔记——使用下划线命名的规则

    在刷牛客时遇到一道关于python中使用下划线命名的题,我重复刷了两次了还是做错...所以今天就把这题给记录下来 (不定项选择题) Python中单下划线foo与双下划线_ foo与__ foo__ ...

  3. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  4. python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  5. python 下划线转驼峰_json字符串中key值下划线命名转换为驼峰命名

    json字符串中key值下划线命名转换为驼峰命名: 例如: 原json串: String json= "{'user_name':'ok','user_sex':0,'object_info ...

  6. Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略

    Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...

  7. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  8. python中不被定义_一日一技:在Python中双下划线私有方法不能被调用的原理

    一日一技:在Python中双下划线私有方法不能被调用的原理 在使用Python编写面向对象的代码时,我们会常常使用"继承"这种开发方式.例如下面这一段代码: class Info: ...

  9. python中的下划线_讲解

    python中,下划线 "_""_"" \_" 不管是单独作为变量名或者作为变量名的前缀或者后缀,是有特殊含义的,下面简要的来总结一下. 1 ...

最新文章

  1. AI干货系列一:为什么AI预测更智能?
  2. java fft 频谱算法_快速傅里叶变换(FFT)算法原理及代码解析
  3. 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
  4. java 极客_Java极客思维
  5. Spring Cloud 入门 之 Eureka 篇(一)
  6. halcon算子翻译——estimate_noise
  7. 【数学建模】基于matlab GUI弱肉强食问题—Volterra 模型【含Matlab源码 1502期】
  8. ios根据服务器修改App名称,iOS 修改APP工程名字
  9. 安卓10自带录屏_荣耀v10怎么录屏?荣耀v10三种录屏方法
  10. MSP430F149--点亮LED灯程序代码
  11. 使用电脑微信扫描二维码
  12. 矩阵乘法求解多项式递推问题
  13. iPhone解锁的三种方法【附全型号进入恢复模式方法】
  14. 5年市值蒸发2000多亿 绿地控股二次混改能否迎来春天?
  15. centos搭建mysql、nginx、nodejs、screen
  16. linux 内核配置简介
  17. 【学习】大数据关键技术
  18. C语言入门技巧·使用注释快捷键完成单行注释和多行注释的技巧
  19. 临河三中宏志班2021年高考成绩查询,临河三中名教师简介一
  20. STM32F030F4P6 HAL库 PPM信号输出 24L01 PPM接收机制作

热门文章

  1. nginx反向代理配置去除前缀问题
  2. 替换 PPT 中的视频、音频文件试试这款国产控件
  3. repository.save() 无效 无法保存数据
  4. 视频一键批量去重的方法与软件实现案例-咚咚剪辑
  5. python排序算法——冒泡排序
  6. 《一步一脚印 90后程序员》4
  7. 统计图表-BigDecimal-换算百分比-加一起不满足100%
  8. 视频教程-项目实战视频课程:美团小程序(Node.js+Express+支付)-微信开发
  9. smc数显压力表设定方法_SMC真空压力表 使用手册.pdf
  10. java pkcs1padding_RSA/ECB/PKCS1Padding加密