1、在Python中要想定义的方法或者变量只在类内部使用不被外部调用,可以在方法和变量前面加 两个 下划线

 #-*-  coding:utf-8 -*-

 class A(object):
name = "sashuangyibing"
__mingzi = "bingyishuangsa" # 这个是私有变量,只能在类A之内可以使用,超过类A之外是无法引用到
def fun1(self):
print "This is common method"
def __fun2(self): # 这个是私有方法,只能在类A之内可以使用,超过类A之外是无法引用到
print "This is private method"
def fun4(self):
return self.__mingzi # 该私有变量在当前类之内可以被引用 class B(A):
def __init__(self):
super(B,self).__init__() def fun3(self):
print "fun3" aa = A()
print aa.name
print aa.fun4()
print aa._A__mingzi
aa._A__fun2()

输出:

sashuangyibing
bingyishuangsa
bingyishuangsa
This is private method

 

试错验证,如果按下面方法织造引用私有变量,会报没有该属性

aa = A()
print aa.__mingzi Traceback (most recent call last):
File "E:\04.script\work\test.py", line 21, in <module>
print aa.__mingzi
AttributeError: 'A' object has no attribute '__mingzi'

  

aa = A()
print aa.__fun2() Traceback (most recent call last):
File "E:\04.script\work\test.py", line 21, in <module>
print aa.__fun2()
AttributeError: 'A' object has no attribute '__fun2'

  

但是可以通过下面这种方法去引用私有变量和方法,在类名前面添加一个下划线

aa = A()
print aa._A__mingzi # A前面只有一个下线线
print aa._A__fun2() bingyishuangsa
This is private method

  

 

[python] 私有变量和私有方法的更多相关文章

  1. python 类的私有变量和私有方法

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/08 8:46 # @Author : lijunjiang # @Fil ...

  2. Python保护变量、私有变量、私有方法

    保护变量.私有变量.私有方法介绍: _xxx: 单下划线开头叫保护变量,意思是只有类对象和子类对象自己能访问到这些变量,此变量不能通过from XXX import xxx 导入: __xxx : 双 ...

  3. Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量 ...

  4. JavaScript 执行环境(执行上下文) 变量对象 作用域链 上下文 块级作用域 私有变量和特权方法

    总结自<高程三>第四章  理解Javascript_12_执行模型浅析   JS的执行环境与作用域  javascript高级程序第三版学习笔记[执行环境.作用域] 在javascript ...

  5. 第七章 函数表达式和函数声明,关于this对象 ,私有作用域(function(){})() ,私有变量和特权方法

    一:函数表达式和函数声明 1:函数声明和函数表达式的区别 ①函数声明不需要分号结尾 ②函数声明有函数提升的特点 ③函数声明后面不能跟圆括号直接调用,因为javascript将function关键字当作 ...

  6. 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java

    import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...

  7. iOS 学习如何声明私有变量和私有方法

    私有变量 首先来说 OC 中没有绝对的私有变量,这么说基于两点原因: 1可修改:   通过KVC  键值编码 来修改私有成员变量的值 2可读取 :  通过底层runtime 获取实例变量Ivar 对应 ...

  8. js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态)

    js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态) 一.总结 1.js函数中的private和public:js函数中的私有变量 var 变量名,公有变量 this. ...

  9. iOS 运行时runtime控制私有变量以及私有方法

    OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...

随机推荐

  1. C字符串

    C字符串 C中的字符串是以空字符('\0')结尾的一个char数组,基本的实现字符串的方法有:字符串常量,字符串数组,char数组,char指针.字符串使用广泛,如与用户交互等处理自然语言的情况.C为 ...

  2. c++语言对c的扩充

    1.命名空间的使用 参见下列链接:http://www.cnblogs.com/uniqueliu/archive/2011/07/10/2102238.html 需要注意的地方:如果使用了命名空间s ...

  3. 爬虫、网页分析解析辅助工具 Xpath-helper

    每一个写爬虫.或者是做网页分析的人,相信都会因为在定位.获取xpath路径上花费大量的时间,甚至有时候当爬虫框架成熟之后,基本上主要的时间都花费在了页面的解析上.在没有这些辅助工具的日子里,我们只能通 ...

  4. winform窗体 小程序【线程】

    线程是进程中执行运算的最小单位,也是执行处理机调度的基本单位.实际上线程是轻量级的进程.那么为什么要使用线程呢? (1)易于调度. (2)提高并发性.通过线程可方便有效地实现并发性.进程可创建多个线程 ...

  5. Linux-man命令(17)

    man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助.配置文件帮助和编程帮助等信息 可以按章节来搜索手册: man 1: 用户命令(ls,cd,cp,rm,tar等) ma ...

  6. IntelliJ IDEA 启动tomcat服务器报Error running 'Unnamed': Address localhost:1099 is already in use错误的问题

    在使用Intellij IDEA运行web项目时,出现 :Error running Tomcat8: Address localhost:1099 is already in use,使其web项目 ...

  7. 【原】Solr入门之概念和安装

    Apache Solr 是Apache Lucene项目的开源企业搜索平台.其主要功能包括全文检索.命中标示.分面搜索.动态聚类.数据库集成,以及富文本(如Word.PDF)的处理.Solr是高度可扩 ...

  8. 233 Matrix(hdu5015 矩阵)

    233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  9. apache2.4.33伪静态配置入门教程(1)

    伪静态: 把动态网页的请求方式伪装成静态网页 要使用伪静态技术,要在httpd.conf中启用伪静态模块: LoadModule rewrite_module modules/mod_rewrite. ...

  10. python学习之老男孩python全栈第九期_day002作业

    1. 判断下列逻辑语句的True,False.(1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6Tru ...