类私有化和模块私有化之间可能存在混淆。

A模块private以一个下划线开头

当使用import命令的from import *形式时,这样的元素不会被复制;但是,如果使用import 语法(see Ben Wilhelm's answer)

只需从问题示例的a.\u num中删除一个下划线,它就不会显示在使用from a import *语法导入a.py的模块中。

A类private以两个下划线开始(也称为d under,即d-ouble under score)

这样的变量的名称“mangled”包括类名等。

它仍然可以通过损坏的名称在类逻辑之外访问。

尽管名称管理可以作为防止未经授权访问的一种温和的预防设备,但它的主要目的是防止可能与祖先类的类成员发生名称冲突。

见Alex Martelli有趣但准确地引用了同意成人,因为他描述了关于这些变量的惯例。>>> class Foo(object):

... __bar = 99

... def PrintBar(self):

... print(self.__bar)

...

>>> myFoo = Foo()

>>> myFoo.__bar #direct attempt no go

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'Foo' object has no attribute '__bar'

>>> myFoo.PrintBar() # the class itself of course can access it

99

>>> dir(Foo) # yet can see it

['PrintBar', '_Foo__bar', '__class__', '__delattr__', '__dict__', '__doc__', '__

format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__',

'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__

', '__subclasshook__', '__weakref__']

>>> myFoo._Foo__bar #and get to it by its mangled name ! (but I shouldn't!!!)

99

>>>

python 模块定义_在python中定义私有模块函数相关推荐

  1. java属性定义_在java中定义抽象属性

    抽象关键字通常应用于类和方法,以便将某些行为的实现委托给子类. Java不支持抽象属性,如果您试图将类属性标记为抽象,则会得到编译错误. 在本教程中,将介绍两种定义抽象属性的方法,这些属性由子类设置, ...

  2. java 整型数组定义_在Java中定义一个具有10个元素的整型数组a的语句是:___

    在Java中定义一个具有10个元素的整型数组a的语句是:___ 答: int [] arr = new int[10] 在借贷记账法下() 答:在账户结构上,"借"和"贷 ...

  3. type c pin定义_在C中定义宏以设置和清除PIN的位

    type c pin定义 Given a PIN (value in HEX) and bit number, we have to SET and then CLEAR given bit of t ...

  4. devops定义_在层中定义DevOps

    devops定义 DevOps是什么? 我认为这是每个DevOps初学者都会问的一个问题. 如果您问10个人这个问题,您很可能会得到10个不同的答案. 这肯定说明了DevOps的普遍性,开放性,但也说 ...

  5. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  6. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  7. 将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中

    将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中 写这种.h和.cpp文件分开的大程序,虽然对很多人来说很简单,对自己来说算是第一次吧,好好学C++,加油~ 题目:定义Point类,由 ...

  8. python打印时间_在Python中定义Main函数(第二部分)

    Main函数的最佳实践 既然您已经了解两种执行方式上的差异,那么掌握一些最佳实践方案还是很有用的.它们将适用于编写作为脚本运行的代码或者在另一个模块导入的代码. 如下是四种实践方式: 将大部分代码放入 ...

  9. python方法定义..._解析Python类中的方法定义

    最近在学习类过程中,绑定方法这个概念没有理解透彻,所以在网上找了很多相关博客.文章研究到底是怎么一回事.因为有的文章所陈述与我在python3.5版本实际实验中有些出入,所以经过实践后总结出以下结论. ...

最新文章

  1. java笔试题_【干货分享】中兴通讯2021校招笔试测评攻略
  2. idea前进和后退快捷键_必备技能:IDEA一定要懂的32条快捷键
  3. 工业界和学术界的思考
  4. QPainter类的CompositionMode各值含义
  5. ctfshow-网络迷踪-初学乍练( 离谱! 一张图判断飞机的目的地?)
  6. MFC避免窗口闪烁的方法(OnEraseBkgnd) .
  7. 20155307《网络对抗》信息搜集与漏洞扫描
  8. php整型运算符,php常用运算符
  9. java 内存分布_java的各类型数据在内存中分配情况详解_
  10. java一键生成《数据库设计文档》
  11. 阿里云部署.NET后端
  12. 网络聊天室的分析与实现
  13. java物流实时跟踪
  14. 京东疯狂月薪36k程序员最新Java面试题(常见面试题及答案汇总)
  15. 对话V神:区块链跨链技术大规模应用将在一到两年内爆发
  16. linux 32 telnet 工具,Telnet/SSH/SSH2终端工具(Zoc terminal)
  17. 计算机系统如何重置,如何重置电脑系统?看这里1分钟教会你!
  18. Go语言环境配置 Sublime Text + GoSublime+ gocode + MarGo组
  19. JAVA开发与运维(web生产环境部署)
  20. python一个函数调用另一个函数中的变量_在Python 中同一个类两个函数间变量的调用方法...

热门文章

  1. 推荐一些用CRF做图像语义分割的资源
  2. HttpClient实现通过url下载文件
  3. Flink1.6系列之—数据流编程模型
  4. react+react-router 4.0+redux 构建购物车实战项目
  5. C#高级编程 第十五章 反射
  6. ORACLE EBS CUX用户的创建(转)
  7. Aspx页面内 成员变量丢失的问题
  8. Bailian4007 计算字符串距离【DP】
  9. Bailian4151 电影节【贪心】
  10. Bailian4069 买手机【序列处理+排序】