-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpythonzhong-__shuang-xia-hua-xian-de-zuo-yong.html
More file actions
162 lines (151 loc) · 8.3 KB
/
pythonzhong-__shuang-xia-hua-xian-de-zuo-yong.html
File metadata and controls
162 lines (151 loc) · 8.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Won" />
<meta name="copyright" content="Won" />
<meta name="keywords" content="Python, It, " />
<title>python中 __(双下划线)的作用 · Tugqi Biz
</title>
<link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="http://wbowam.github.io/theme/css/style.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://wbowam.github.io/theme/css/solarizedlight.css" media="screen">
<link rel="shortcut icon" href="http://wbowam.github.io/theme/images/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="http://wbowam.github.io/theme/images/apple-touch-icon.png" />
<link rel="apple-touch-icon" sizes="57x57" href="http://wbowam.github.io/theme/images/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="72x72" href="http://wbowam.github.io/theme/images/apple-touch-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="http://wbowam.github.io/theme/images/apple-touch-icon-114x114.png" />
<link rel="apple-touch-icon" sizes="144x144" href="http://wbowam.github.io/theme/images/apple-touch-icon-144x144.png" />
<link rel="icon" href="http://wbowam.github.io/theme/images/apple-touch-icon-144x144.png" />
</head>
<body>
<div id="content-sans-footer">
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="http://wbowam.github.io/"><span class=site-name>Tugqi Biz</span></a>
<div class="nav-collapse collapse">
<ul class="nav pull-right top-menu">
<li ><a href="http://wbowam.github.io">Home</a></li>
<li ><a href="http://wbowam.github.io/categories.html">Categories</a></li>
<li ><a href="http://wbowam.github.io/tags.html">Tags</a></li>
<li ><a href="http://wbowam.github.io/archives.html">Archives</a></li>
<li><form class="navbar-search" action="http://wbowam.github.io/search.html" onsubmit="return validateForm(this.elements['q'].value);"> <input type="text" class="search-query" placeholder="Search" name="q" id="tipue_search_input"></form></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span1"></div>
<div class="span10">
<article>
<div class="row-fluid">
<header class="page_header span10">
<h1><a href="http://wbowam.github.io/pythonzhong-__shuang-xia-hua-xian-de-zuo-yong.html"> python中 __(双下划线)的作用 </a></h1>
</header>
</div>
<div class="row-fluid">
<div class="span10 article-content">
<ul>
<li>
<p>Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量。 </p>
</li>
<li>
<p>可有时候需要用到私有变量,因此诞生了__。 </p>
</li>
<li>
<p>变量名或函数名前加上 ”__“两个下划线,那么这个函数或变量就会为私有的了。</p>
</li>
<li>
<p>私有意味着只有内部能使用,对外部隐藏。 </p>
</li>
<li>
<p>在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername来使用。 <br />
在外部,使用原来的私有成员的名字时,会提示找不到。(达到了隐藏的效果) </p>
</li>
</ul>
<hr />
<div class="highlight"><pre><span class="n">class</span> <span class="n">Tester</span><span class="p">(</span><span class="n">object</span><span class="p">)</span><span class="o">:</span>
<span class="n">__foo</span> <span class="o">=</span> <span class="s">"hi"</span>
<span class="o">>>></span> <span class="n">t</span> <span class="o">=</span> <span class="n">Tester</span><span class="p">()</span>
<span class="o">>>></span> <span class="n">t</span><span class="p">.</span><span class="n">_Tester__foo</span>
<span class="err">'</span><span class="n">hi</span><span class="err">'</span>
</pre></div>
<div class="highlight"><pre><span class="n">class</span> <span class="n">Tester</span><span class="p">(</span><span class="n">object</span><span class="p">)</span><span class="o">:</span>
<span class="p">...</span> <span class="n">def</span> <span class="n">__init__</span><span class="p">(</span><span class="n">self</span><span class="p">)</span><span class="o">:</span>
<span class="p">...</span> <span class="n">self</span><span class="p">.</span><span class="n">__foo</span> <span class="o">=</span> <span class="s">"hi"</span>
<span class="p">...</span>
<span class="o">>>></span> <span class="n">t</span><span class="o">=</span><span class="n">Tester</span><span class="p">()</span>
<span class="o">>>></span><span class="n">t</span><span class="p">.</span><span class="n">_Tester__foo</span>
<span class="err">'</span><span class="n">hi</span><span class="err">'</span>
</pre></div>
<aside>
<hr/>
<nav>
<ul class="articles_timeline">
<li class="previous_article">« <a href="http://wbowam.github.io/python-withyu-ju.html" title="Previous: Python with语句">Python with语句</a></li>
<li class="next_article"><a href="http://wbowam.github.io/python-shi-li-fang-fa-jing-tai-fang-fa-lei-fang-fa.html" title="Next: python 实例方法,静态方法,类方法">python 实例方法,静态方法,类方法</a> »</li>
</ul>
</nav>
</aside>
<!-- Duoshuo Comment BEGIN -->
<div class="ds-thread" data-author-key="4433755"></div>
<script type="text/javascript">
var duoshuoQuery = {short_name:"tlbog"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = 'http://static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- Duoshuo Comment END -->
</div>
<section>
<div class="span2" style="float:right;font-size:0.9em;">
<h4>Published</h4>
<time pubdate="pubdate" datetime="2014-07-07T00:00:00+08:00">Jul 7, 2014</time>
<h4>Category</h4>
<a class="category-link" href="/categories.html#It-ref">It</a>
<h4>Tags</h4>
<ul class="list-of-tags tags-in-article">
<li><a href="/tags.html#Python-ref">Python
<span>15</span>
</a></li>
</ul>
</div>
</section>
</div>
</article>
</div>
<div class="span1"></div>
</div>
</div>
</div>
<footer>
<div id="footer">
<ul class="footer-content">
<li class="elegant-power">Powered by <a href="http://getpelican.com/" title="Pelican Home Page">Pelican</a>. Theme: <a href="http://oncrashreboot.com/pelican-elegant" title="Theme Elegant Home Page">Elegant</a> by <a href="http://oncrashreboot.com" title="Talha Mansoor Home Page">Talha Mansoor</a></li>
</ul>
</div>
</footer> <script src="http://code.jquery.com/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script>
function validateForm(query)
{
return (query.length > 0);
}
</script>
</body>
</html>