python单下划线和双下划线的区别

文章目录:

  • 一、简单说明
  • 二、举例说明
    • 1、单下划线开头开头(protected变量)
    • 2、双下划线开头(private变量)

一、简单说明

在学习Python的时候,会不理解为什么在方法(method)前面会加好几个下划线,有时甚至两边都会加。在C++的类中会定义中一些方法或属性会被定义成public、protected、private,而在Python中不是通过关键字进行定义,而是通过下划线和双下划线进行定义,同样实现具有 private 和 protected 类似的访问权限作用,下面我们具体分析。

Python主要存在四种命名:
(1)object #公用方法
(2)__object__ #内建方法,用户不要这样定义
(3)__object #全私有,全保护(private)
(4)_object #半保护(protected)

核心风格:避免用下划线作为变量名的开始。
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,如类的gouzao

二、举例说明

1、单下划线开头开头(protected变量)

单下划线开头的变量
“单下划线”开始的变量叫做保护变量,意思是只有类对象和子类对象能访问到这些变量

2、双下划线开头(private变量)

双下划线开头的变量
“双下划线”开始的变量叫做私有变量,意思是只有类本身能够访问达到这些变量,连子类对象也不能访问。

但是类的对象或者类的子对象想访问这些私有变量也是可以的,需要改变访问的的方式(但是一般不主张)
对象访问私有方法或属性:

对象名._类名__PrivateMethod()

class Foo():def __init__():...def public_method():print 'This is public method'def __fullprivate_method():print 'This is fullprivate_method'def _halfprivate_method():print 'This is halfprivate_method'f = Foo()f.public_method() # OKf.__fullprivate_method() # Error occurf._halfprivate_method() # OKf._Foo__fullprivate_method() # OK

参考:https://www.runoob.com/w3cnote/python-5-underline.html # 对前双下划线的解释比较好




♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

python单下划线和双下线的区别相关推荐

  1. python单下划线和双下滑线

    单下滑线 单下划线_xxx开头:表示受保护的内部变量或函数,除非__all__=['内部变量1','内部变量2 ']中有,否则import时不会导入这些内部变量 双下滑线 类中双下划线__xxx开头: ...

  2. python 单下划线及双下划线使用方法

    Python下划线命名模式 - 小结 以下是一个简短的小结,即"速查表",罗列了我在本文中谈到的五种Python下划线模式的含义: ------------------------ ...

  3. python双划线_python 单下划线与双下划线的区别

    原标题:python 单下划线与双下划线的区别 python中下环线共有5中 下面开始一一介绍 1.单前导下划线 _xxx: 变量前面使用单下划线,用于指定该名称为"私有".为方便 ...

  4. python 里面的单下划线与双下划线的区别

    python 里面的单下划线与双下划线的区别 Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx 不能用'from moduleimport *'导入 __xxx__ 系统定义名字 __ ...

  5. Python笔记 · 私有方法、私有属性 单下划线、双下划线

    首先,不同于其他编程语言,Python中不存在真正意义上的"私有方法/属性",Python中所胃的"私有方法"要么基于约定,要么基于编译期的改写(Name Ma ...

  6. 浅谈python 里面的单下划线与双下划线的区别

    更新时间:2017年12月01日 10:30:13   作者:空气中的臭氧 这篇文章主要介绍了浅谈python 里面的单下划线与双下划线的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起 ...

  7. [Python3] Python中单下划线和双下划线的含义

    本文介绍了Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(name mangling)的工作原理,以及它如何影响你自己的Python类. 单下划 ...

  8. java双下划线改单下划线_单下划线与双下划线的区别

    内容目录 单下划线与双下划线的区别 ​ Python用下划线作为前缀和后缀指定特殊变量和定义方法,主要有如下四种形式: 单下划线(_) 名称前的单下划线(如:_name) 名称前的双下划线(如:__n ...

  9. Python 单下划线(“_“)与双下划线(“__“)以及以双下划线开头和结尾的的区别

    由于python 中没有java 语言中的private ,public, protected 之类的,就引用了下划线. 单下划线的作用: 以单下划线("_")开头的模块变量或者函 ...

最新文章

  1. linux cpu平均利用率st,理解 CPU 利用率
  2. 微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”...
  3. Hadoop学习很好的书籍,理论和代码都有
  4. JpaSpecificationExecutor
  5. 一 在应用中升级u-boot、内核以及文件系统
  6. 索引使用的好处与坏处(Oracle测试)
  7. python的程序格式框架_关于Python程序格式框架的描述,以下选项中错误的是
  8. java软件开发ea介绍_开发说明 — Eacloud 1.0 documentation
  9. 别乱用,这样打日志定位 Bug 又快又准!
  10. 敏捷开发_敏捷开发和迭代开发的异同分析
  11. 采用光线跟踪绘制场景 c++_光线追踪必定是未来趋势,CJ现场带给你全新体验
  12. 一键部署ETCD集群脚本
  13. 进程的描述和进程的创建
  14. matlab实现长除法,【网安智库】基于长除法的BCH(15,7)译码算法
  15. RoboCode 参考代码
  16. 威猛“路威“,全新启航!
  17. 影响力在职场的重要性
  18. 放大镜原理分析及jquery实现
  19. MySQL安装教程包含所有平台(图解),MySQL下载步骤详解(带安装教程)
  20. ubuntu修改u盘权限_ubuntu系统下向U盘拷贝数据提示目标是只读的

热门文章

  1. 11.2 计算机保护条例解读
  2. Linux系统中退出vim的编辑器3种情况
  3. BZOJ 4407: 于神之怒加强版
  4. 定义serialVersionUID的作用与意义整理
  5. android studio 一直在 svn performing vcs refresh
  6. 1.CentOS安装Redis
  7. 最简MacOs10.8安装
  8. 程序员面对下列技术问题,如何做决策
  9. python这个软件学会能做什么工作-不要再复制粘贴了 !学会Python,分分钟搞定一整天的工作...
  10. python3.6.4安装教程-Centos7 安装Python3.6.4