用户工具

站点工具


python-class:private

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

python-class:private [2010/06/02 01:18]
python-class:private [2010/06/02 01:18] (当前版本)
行 1: 行 1:
 +====== Python类中的私有成员(私有函数,私有变量) ======
  
 +Python中默认的成员函数,成员变量都是公开的(public),​而且python中没有类似public,​private等关键词来修饰成员函数,成员变量。
 +
 +在python中定义私有变量只需要在变量名或函数名前加上 "​%%__%%"​两个下划线,那么这个函数或变量就会为私有的了。
 +
 +在内部,python使用一种 name mangling 技术,将 %%__%%membername替换成 _classname%%__%%membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。
 +
 +
 +命名混淆意在给出一个在类中定义“私有”实例变量和方法的简单途径,
 +避免派生类的实例变量定义产生问题,或者与外界代码中的变量搞混。
 +要注意的是混淆规则主要目的在于避免意外错误,
 +被认作为私有的变量仍然有可能被访问或修改。
 +在特定的场合它也是有用的,比如调试的时候,
 +这也是一直没有堵上这个漏洞的原因之一
 +(小漏洞:派生类和基类取相同的名字就可以使用基类的私有变量。)
python-class/private.txt · 最后更改: 2010/06/02 01:18 (外部编辑)