首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入。不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象。

在 Python 的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需要一个变量叫做 class,但 class 是 Python 的关键词,就可以以单下划线结尾写作 class_。

双下划线开头的命名形式在 Python 的类成员中使用表示名字改编 (Name Mangling),即如果有一 Test 类里有一成员 __x,那么 dir(Test) 时会看到 _Test__x 而非 __x。这是为了避免该成员的名称与子类中的名称冲突。但要注意这要求该名称末尾没有下划线。

双下划线开头双下划线结尾的是一些 Python 的“魔术”对象,如类成员的 __init__、__del__、__add__、__getitem__ 等,以及全局的 __file__、__name__ 等。 Python 官方推荐永远不要将这样的命名方式应用于自己的变量或函数,而是按照文档说明来使用。

另外单下划线开头还有一种一般不会用到的情况在于使用一个 C 编写的扩展库有时会用下划线开头命名,然后使用一个去掉下划线的 Python 模块进行包装。如 struct 这个模块实际上是 C 模块 _struct 的一个 Python 包装。

转载于:https://www.cnblogs.com/daduryi/p/6856580.html

python:类5——Python 的类的下划线命名有什么不同?相关推荐

  1. python类实例化 输入参数名字 下划线_Python 的类的下划线命名有什么不同?

    1,以一个下划线开头的命名 ,如_getFile 2,以两个下划线开头的命名 ,如__filename 3,以两个下划线开头和结尾的命名,如 __init__() 4,其它 这些命名有什么不同吗 首先 ...

  2. Python什么是闭包、闭包特征、定义闭包传入一个数求和并输出,定义一个装饰器:打印函数运行花费的时间,定义一个类:要求:包含一个对象属性,且用_(单下划线)命名的定义一个类方法(装饰器)

    1. 闭包.闭包特征及应用 1.1 什么是闭包? 闭包就是外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数; 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包 ...

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

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

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

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

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

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

  6. 【从零学Python】关于python下划线命名的事儿、enumerate()

    一. Python 的类的下划线命名有什么不同 1,以一个下划线开头的命名 ,如_getFile 这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_ ...

  7. Python下划线命名模式

    ?Python下划线命名模式 - 摘要 以下是我在本文中介绍的五个下划线模式在Python中的快速摘要或"备忘单": 图案 例 含义 单领先下划线 _var 指示名称的命名约定供内 ...

  8. Python中的方法名前加下划线

    在Python中,方法名前加下划线通常有以下几种用法和约定: 单个前导下划线(_methodName):这是一种约定,用于指示该方法是类的内部使用方法,应该被视为私有方法.虽然在语法上并没有强制限制, ...

  9. python变量名必须以字母或下划线开头不区分字母大小写_Python变量名必须以字符或下划线开头,并且区分字母大小写。...

    [判断题]在Python 3.x中可以使用中文作为变量名. [判断题]Python变量名必须以字符或下划线开头,并且区分字母大小写. [填空题]气体的粘度随温度升高而( ),水的粘度随温度升高而( ) ...

最新文章

  1. TestBird烧烤趴,几维安全专属报名通道
  2. 【题解】 bzoj2748 [HAOI2012]音量调节 (动态规划)
  3. 【学习笔记】JS进阶语法一document对象
  4. java定义json数组_Java面试题:json该如何定义?json与xml的区别有哪些?
  5. 用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化
  6. 一些关于并行计算的科研思路
  7. 数据分析融入至BI工具的新思路
  8. Android图片,PNG还是JPG?用哪种?
  9. 如何用python批量下载数据_Python实现批量下载文件
  10. Java Code Examples for org.springframework.http.HttpStatus
  11. 如何在苹果Mac上使用 Siri?
  12. 181102每日一句
  13. android+图标自动排列,Android用RecyclerView实现图标拖拽排序以及增删管理
  14. “鬼影”浅析 - 反病毒,信息安全,网络安全,反木马,病毒资讯平台,安全解决方案,电脑使用技巧,杀毒软件交流,anti-virus,民间反病毒联盟
  15. F5 BIG-IP 17.0.0
  16. CA(Certificate Authority)及其伪造的可能性分析
  17. Linux下软件逆向工程的介绍(一)
  18. taskkill掉带空格的windowtitle
  19. UI交互设计:红绿立体图片的制作
  20. Java二叉树和红黑树

热门文章

  1. 获取一个APK的版本号
  2. Django完整的开发一个博客系统
  3. [20151126]IMPDP TRANSFORM参数.TXT
  4. Wireshark和TcpDump抓包分析心得
  5. GridView的RowCommand事件中取得行索引 技巧
  6. 路由器NAT负载均衡实验过程详解
  7. ETL工具学习以及安装部署
  8. python 根据网址获取股票
  9. mysql搜索中文 有的匹配不出来_MYSQL-中文检索匹配与正则表达式
  10. 1106. Lowest Price in Supply Chain (25)-PAT甲级真题(dfs,bfs,树的遍历)