-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpython-shi-li-fang-fa-jing-tai-fang-fa-lei-fang-fa.html
180 lines (164 loc) · 11.3 KB
/
python-shi-li-fang-fa-jing-tai-fang-fa-lei-fang-fa.html
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<!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/python-shi-li-fang-fa-jing-tai-fang-fa-lei-fang-fa.html"> python 实例方法,静态方法,类方法 </a></h1>
</header>
</div>
<div class="row-fluid">
<div class="span10 article-content">
<h3 id="_1">实例方法(@郭叔)<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<p>字面意思:实例的方法,即只有实例能使用的方法,相对于类方法和静态方法。</p>
<h5 id="self">实例方法的第一个参数默认为self,代指实例。<a class="headerlink" href="#self" title="Permanent link">¶</a></h5>
<p>如:</p>
<div class="highlight"><pre><span class="n">class</span> <span class="n">Foo</span><span class="o">:</span>
<span class="err">##</span><span class="n">init</span><span class="p">()</span><span class="err">是生成实例时默认调用的实例方法</span><span class="p">,</span><span class="err">用于初始化详细见</span><span class="p">[</span><span class="n">__init__</span><span class="err">方法</span><span class="p">](</span><span class="err">#</span><span class="p">)</span>
<span class="err">###第一个参数默认为</span><span class="n">self</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="n">name</span><span class="p">)</span><span class="o">:</span>
<span class="n">self</span><span class="p">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
<span class="n">self</span><span class="p">.</span><span class="n">author</span><span class="o">=</span><span class="s">"Tulpar"</span>
<span class="err">##又一个实例方法</span>
<span class="n">def</span> <span class="n">hi</span><span class="p">(</span><span class="n">self</span><span class="p">)</span><span class="o">:</span>
<span class="n">print</span> <span class="n">self</span><span class="p">.</span><span class="n">name</span>
<span class="n">print</span> <span class="s">"Created by %s"</span><span class="o">%</span><span class="n">self</span><span class="p">.</span><span class="n">author</span>
</pre></div>
<h5 id="selfguoshu">self不是一个关键字,而是约定的写法。也可以换成任意字符串,如'guoshu'<a class="headerlink" href="#selfguoshu" title="Permanent link">¶</a></h5>
<div class="highlight"><pre> <span class="err">###第一个参数默认为</span><span class="n">guoshu</span><span class="p">,</span><span class="err">作用和</span><span class="n">self</span><span class="err">一样</span>
<span class="n">def</span> <span class="n">__init__</span><span class="p">(</span><span class="n">guoshu</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span><span class="o">:</span>
<span class="n">guoshu</span><span class="p">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
<span class="n">guoshu</span><span class="p">.</span><span class="n">author</span><span class="o">=</span><span class="s">"Tulpar"</span>
<span class="err">##又一个实例方法</span>
<span class="n">def</span> <span class="n">hi</span><span class="p">(</span><span class="n">guoshu</span><span class="p">)</span><span class="o">:</span>
<span class="n">print</span> <span class="n">guoshu</span><span class="p">.</span><span class="n">name</span>
<span class="n">print</span> <span class="s">"Created by %s"</span><span class="o">%</span><span class="n">guoshu</span><span class="p">.</span><span class="n">author</span>
</pre></div>
<h3 id="_2">静态方法<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3>
<p>静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作。使用装饰器@staticmethod定义静态方法。类对象和实例都可以调用静态方法</p>
<div class="highlight"><pre><span class="n">class</span> <span class="n">Foo</span><span class="o">:</span>
<span class="err">##静态方法走起</span>
<span class="err">@</span><span class="n">staticmethod</span>
<span class="n">def</span> <span class="n">add</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span><span class="o">:</span>
<span class="n">print</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
</pre></div>
<p>运行结果</p>
<div class="highlight"><pre><span class="cp">###生成实例f1</span>
<span class="o">></span><span class="n">f1</span><span class="o">=</span><span class="n">Foo</span><span class="p">(</span><span class="n">u</span><span class="err">'果树'</span><span class="p">)</span>
<span class="cp">###实例能用静态方法</span>
<span class="o">></span><span class="n">f1</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
<span class="cp">###类对象也能使用静态方法</span>
<span class="o">></span><span class="n">Foo</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
<span class="cp">###输出结果</span>
<span class="mi">8</span>
<span class="mi">8</span>
</pre></div>
<h3 id="_3">类方法<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
<p>正在更新!!</p>
<aside>
<hr/>
<nav>
<ul class="articles_timeline">
<li class="previous_article">« <a href="http://wbowam.github.io/pythonzhong-__shuang-xia-hua-xian-de-zuo-yong.html" title="Previous: python中 __(双下划线)的作用">python中 __(双下划线)的作用</a></li>
<li class="next_article"><a href="http://wbowam.github.io/init__fang-fa.html" title="Next: init__()方法">init__()方法</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>