Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / html / python / lib / typesmethods.html
CommitLineData
920dae64
AT
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<link rel="STYLESHEET" href="lib.css" type='text/css' />
5<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
6<link rel='start' href='../index.html' title='Python Documentation Index' />
7<link rel="first" href="lib.html" title='Python Library Reference' />
8<link rel='contents' href='contents.html' title="Contents" />
9<link rel='index' href='genindex.html' title='Index' />
10<link rel='last' href='about.html' title='About this document...' />
11<link rel='help' href='about.html' title='About this document...' />
12<link rel="next" href="bltin-code-objects.html" />
13<link rel="prev" href="typesfunctions.html" />
14<link rel="parent" href="typesother.html" />
15<link rel="next" href="bltin-code-objects.html" />
16<meta name='aesop' content='information' />
17<title>2.3.10.4 Methods </title>
18</head>
19<body>
20<DIV CLASS="navigation">
21<div id='top-navigation-panel' xml:id='top-navigation-panel'>
22<table align="center" width="100%" cellpadding="0" cellspacing="2">
23<tr>
24<td class='online-navigation'><a rel="prev" title="2.3.10.3 Functions"
25 href="typesfunctions.html"><img src='../icons/previous.png'
26 border='0' height='32' alt='Previous Page' width='32' /></A></td>
27<td class='online-navigation'><a rel="parent" title="2.3.10 Other Built-in Types"
28 href="typesother.html"><img src='../icons/up.png'
29 border='0' height='32' alt='Up One Level' width='32' /></A></td>
30<td class='online-navigation'><a rel="next" title="2.3.10.5 Code Objects"
31 href="bltin-code-objects.html"><img src='../icons/next.png'
32 border='0' height='32' alt='Next Page' width='32' /></A></td>
33<td align="center" width="100%">Python Library Reference</td>
34<td class='online-navigation'><a rel="contents" title="Table of Contents"
35 href="contents.html"><img src='../icons/contents.png'
36 border='0' height='32' alt='Contents' width='32' /></A></td>
37<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
38 border='0' height='32' alt='Module Index' width='32' /></a></td>
39<td class='online-navigation'><a rel="index" title="Index"
40 href="genindex.html"><img src='../icons/index.png'
41 border='0' height='32' alt='Index' width='32' /></A></td>
42</tr></table>
43<div class='online-navigation'>
44<b class="navlabel">Previous:</b>
45<a class="sectref" rel="prev" href="typesfunctions.html">2.3.10.3 Functions</A>
46<b class="navlabel">Up:</b>
47<a class="sectref" rel="parent" href="typesother.html">2.3.10 Other Built-in Types</A>
48<b class="navlabel">Next:</b>
49<a class="sectref" rel="next" href="bltin-code-objects.html">2.3.10.5 Code Objects</A>
50</div>
51<hr /></div>
52</DIV>
53<!--End of Navigation Panel-->
54
55<H3><A NAME="SECTION0043104000000000000000"></A><A NAME="typesmethods"></A>
56<BR>
572.3.10.4 Methods
58</H3>
59<a id='l2h-260' xml:id='l2h-260'></a>
60<P>
61Methods are functions that are called using the attribute notation.
62There are two flavors: built-in methods (such as <tt class="method">append()</tt> on
63lists) and class instance methods. Built-in methods are described
64with the types that support them.
65
66<P>
67The implementation adds two special read-only attributes to class
68instance methods: <code><var>m</var>.im_self</code> is the object on which the
69method operates, and <code><var>m</var>.im_func</code> is the function
70implementing the method. Calling <code><var>m</var>(<var>arg-1</var>,
71<var>arg-2</var>, ..., <var>arg-n</var>)</code> is completely equivalent to
72calling <code><var>m</var>.im_func(<var>m</var>.im_self, <var>arg-1</var>,
73<var>arg-2</var>, ..., <var>arg-n</var>)</code>.
74
75<P>
76Class instance methods are either <em>bound</em> or <em>unbound</em>,
77referring to whether the method was accessed through an instance or a
78class, respectively. When a method is unbound, its <code>im_self</code>
79attribute will be <code>None</code> and if called, an explicit <code>self</code>
80object must be passed as the first argument. In this case,
81<code>self</code> must be an instance of the unbound method's class (or a
82subclass of that class), otherwise a <code>TypeError</code> is raised.
83
84<P>
85Like function objects, methods objects support getting
86arbitrary attributes. However, since method attributes are actually
87stored on the underlying function object (<code>meth.im_func</code>),
88setting method attributes on either bound or unbound methods is
89disallowed. Attempting to set a method attribute results in a
90<code>TypeError</code> being raised. In order to set a method attribute,
91you need to explicitly set it on the underlying function object:
92
93<P>
94<div class="verbatim"><pre>
95class C:
96 def method(self):
97 pass
98
99c = C()
100c.method.im_func.whoami = 'my name is c'
101</pre></div>
102
103<P>
104See the <em class="citetitle"><a
105 href="../ref/ref.html"
106 title="Python Reference Manual"
107 >Python Reference Manual</a></em> for more
108information.
109
110<P>
111
112<DIV CLASS="navigation">
113<div class='online-navigation'>
114<p></p><hr />
115<table align="center" width="100%" cellpadding="0" cellspacing="2">
116<tr>
117<td class='online-navigation'><a rel="prev" title="2.3.10.3 Functions"
118 href="typesfunctions.html"><img src='../icons/previous.png'
119 border='0' height='32' alt='Previous Page' width='32' /></A></td>
120<td class='online-navigation'><a rel="parent" title="2.3.10 Other Built-in Types"
121 href="typesother.html"><img src='../icons/up.png'
122 border='0' height='32' alt='Up One Level' width='32' /></A></td>
123<td class='online-navigation'><a rel="next" title="2.3.10.5 Code Objects"
124 href="bltin-code-objects.html"><img src='../icons/next.png'
125 border='0' height='32' alt='Next Page' width='32' /></A></td>
126<td align="center" width="100%">Python Library Reference</td>
127<td class='online-navigation'><a rel="contents" title="Table of Contents"
128 href="contents.html"><img src='../icons/contents.png'
129 border='0' height='32' alt='Contents' width='32' /></A></td>
130<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
131 border='0' height='32' alt='Module Index' width='32' /></a></td>
132<td class='online-navigation'><a rel="index" title="Index"
133 href="genindex.html"><img src='../icons/index.png'
134 border='0' height='32' alt='Index' width='32' /></A></td>
135</tr></table>
136<div class='online-navigation'>
137<b class="navlabel">Previous:</b>
138<a class="sectref" rel="prev" href="typesfunctions.html">2.3.10.3 Functions</A>
139<b class="navlabel">Up:</b>
140<a class="sectref" rel="parent" href="typesother.html">2.3.10 Other Built-in Types</A>
141<b class="navlabel">Next:</b>
142<a class="sectref" rel="next" href="bltin-code-objects.html">2.3.10.5 Code Objects</A>
143</div>
144</div>
145<hr />
146<span class="release-info">Release 2.4.2, documentation updated on 28 September 2005.</span>
147</DIV>
148<!--End of Navigation Panel-->
149<ADDRESS>
150See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
151</ADDRESS>
152</BODY>
153</HTML>