blob: 81e29f18468d59c0ca0fa42f2e1ba795881fa885 [file] [log] [blame]
Georg Brandl437e6a32007-08-17 06:27:11 +00001.. _glossary:
2
3********
4Glossary
5********
6
7.. if you add new entries, keep the alphabetical sorting!
8
9.. glossary::
10
11 ``>>>``
12 The typical Python prompt of the interactive shell. Often seen for code
13 examples that can be tried right away in the interpreter.
14
15 ``...``
16 The typical Python prompt of the interactive shell when entering code for
17 an indented code block.
Georg Brandl584265b2007-12-02 14:58:50 +000018
Georg Brandl5a42ca62008-05-20 07:20:12 +000019 2to3
20 A tool that tries to convert Python 2.x code to Python 3.x code by
21 handling most of the incompatibilites that can be detected by parsing the
22 source and traversing the parse tree.
23
24 2to3 is available in the standard library as :mod:`lib2to3`; a standalone
25 entry point is provided as :file:`Tools/scripts/2to3`.
26
Benjamin Peterson9385b9d2008-07-03 12:57:35 +000027 abstract base class
Benjamin Petersonaac51b82008-07-01 23:33:06 +000028 Abstract Base Classes (abbreviated ABCs) complement :term:`duck-typing` by
29 providing a way to define interfaces when other techniques like :func:`hasattr`
30 would be clumsy. Python comes with many builtin ABCs for data structures
31 (in the :mod:`collections` module), numbers (in the :mod:`numbers`
32 module), and streams (in the :mod:`io` module). You can create your own
33 ABC with the :mod:`abc` module.
34
Georg Brandl584265b2007-12-02 14:58:50 +000035 argument
36 A value passed to a function or method, assigned to a name local to
37 the body. A function or method may have both positional arguments and
38 keyword arguments in its definition. Positional and keyword arguments
39 may be variable-length: ``*`` accepts or passes (if in the function
40 definition or call) several positional arguments in a list, while ``**``
41 does the same for keyword arguments in a dictionary.
42
43 Any expression may be used within the argument list, and the evaluated
44 value is passed to the local variable.
Georg Brandl437e6a32007-08-17 06:27:11 +000045
46 BDFL
47 Benevolent Dictator For Life, a.k.a. `Guido van Rossum
48 <http://www.python.org/~guido/>`_, Python's creator.
49
Georg Brandl63fa1682007-10-21 10:24:20 +000050 bytecode
51 Python source code is compiled into bytecode, the internal representation
52 of a Python program in the interpreter. The bytecode is also cached in
53 ``.pyc`` and ``.pyo`` files so that executing the same file is faster the
54 second time (recompilation from source to bytecode can be avoided). This
55 "intermediate language" is said to run on a "virtual machine" that calls
56 the subroutines corresponding to each bytecode.
Georg Brandl437e6a32007-08-17 06:27:11 +000057
58 classic class
59 Any class which does not inherit from :class:`object`. See
Georg Brandl6c82b6c2007-08-17 16:54:59 +000060 :term:`new-style class`.
Georg Brandl437e6a32007-08-17 06:27:11 +000061
62 coercion
63 The implicit conversion of an instance of one type to another during an
64 operation which involves two arguments of the same type. For example,
65 ``int(3.15)`` converts the floating point number to the integer ``3``, but
66 in ``3+4.5``, each argument is of a different type (one int, one float),
67 and both must be converted to the same type before they can be added or it
68 will raise a ``TypeError``. Coercion between two operands can be
69 performed with the ``coerce`` builtin function; thus, ``3+4.5`` is
70 equivalent to calling ``operator.add(*coerce(3, 4.5))`` and results in
71 ``operator.add(3.0, 4.5)``. Without coercion, all arguments of even
72 compatible types would have to be normalized to the same value by the
73 programmer, e.g., ``float(3)+4.5`` rather than just ``3+4.5``.
74
75 complex number
76 An extension of the familiar real number system in which all numbers are
77 expressed as a sum of a real part and an imaginary part. Imaginary
78 numbers are real multiples of the imaginary unit (the square root of
79 ``-1``), often written ``i`` in mathematics or ``j`` in
80 engineering. Python has builtin support for complex numbers, which are
81 written with this latter notation; the imaginary part is written with a
82 ``j`` suffix, e.g., ``3+1j``. To get access to complex equivalents of the
83 :mod:`math` module, use :mod:`cmath`. Use of complex numbers is a fairly
84 advanced mathematical feature. If you're not aware of a need for them,
85 it's almost certain you can safely ignore them.
86
Skip Montanaroffe455c2007-12-08 15:23:31 +000087 context manager
Georg Brandle151ab42007-12-08 17:56:07 +000088 An objects that controls the environment seen in a :keyword:`with`
Skip Montanaroffe455c2007-12-08 15:23:31 +000089 statement by defining :meth:`__enter__` and :meth:`__exit__` methods.
90 See :pep:`343`.
91
Georg Brandl584265b2007-12-02 14:58:50 +000092 decorator
93 A function returning another function, usually applied as a function
94 transformation using the ``@wrapper`` syntax. Common examples for
95 decorators are :func:`classmethod` and :func:`staticmethod`.
96
97 The decorator syntax is merely syntactic sugar, the following two
98 function definitions are semantically equivalent::
99
100 def f(...):
101 ...
102 f = staticmethod(f)
103
104 @staticmethod
105 def f(...):
106 ...
107
Georg Brandl437e6a32007-08-17 06:27:11 +0000108 descriptor
109 Any *new-style* object that defines the methods :meth:`__get__`,
Georg Brandl5e52db02007-10-21 10:45:46 +0000110 :meth:`__set__`, or :meth:`__delete__`. When a class attribute is a
Georg Brandl437e6a32007-08-17 06:27:11 +0000111 descriptor, its special binding behavior is triggered upon attribute
Georg Brandl5e52db02007-10-21 10:45:46 +0000112 lookup. Normally, using *a.b* to get, set or delete an attribute looks up
113 the object named *b* in the class dictionary for *a*, but if *b* is a
114 descriptor, the respective descriptor method gets called. Understanding
115 descriptors is a key to a deep understanding of Python because they are
116 the basis for many features including functions, methods, properties,
117 class methods, static methods, and reference to super classes.
118
119 For more information about descriptors' methods, see :ref:`descriptors`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000120
121 dictionary
122 An associative array, where arbitrary keys are mapped to values. The use
123 of :class:`dict` much resembles that for :class:`list`, but the keys can
124 be any object with a :meth:`__hash__` function, not just integers starting
125 from zero. Called a hash in Perl.
Georg Brandle64f7382008-07-20 11:50:29 +0000126
127 docstring
128 A docstring ("documentation string") is a string literal that appears as
129 the first thing in a class or function suite. While ignored when the
130 suite is executed, it is recognized by the compiler and put into the
131 :attr:`__doc__` attribute of the class or function. Since it is available
132 via introspection, it is the canonical place for documentation of the
133 object.
Georg Brandl437e6a32007-08-17 06:27:11 +0000134
Benjamin Petersonaac51b82008-07-01 23:33:06 +0000135 duck-typing
Georg Brandl437e6a32007-08-17 06:27:11 +0000136 Pythonic programming style that determines an object's type by inspection
137 of its method or attribute signature rather than by explicit relationship
138 to some type object ("If it looks like a duck and quacks like a duck, it
139 must be a duck.") By emphasizing interfaces rather than specific types,
140 well-designed code improves its flexibility by allowing polymorphic
141 substitution. Duck-typing avoids tests using :func:`type` or
Benjamin Petersonaac51b82008-07-01 23:33:06 +0000142 :func:`isinstance`. (Note, however, that duck-typing can be complemented
143 with abstract base classes.) Instead, it typically employs :func:`hasattr`
144 tests or :term:`EAFP` programming.
Georg Brandl437e6a32007-08-17 06:27:11 +0000145
146 EAFP
147 Easier to ask for forgiveness than permission. This common Python coding
148 style assumes the existence of valid keys or attributes and catches
149 exceptions if the assumption proves false. This clean and fast style is
150 characterized by the presence of many :keyword:`try` and :keyword:`except`
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000151 statements. The technique contrasts with the :term:`LBYL` style that is
Georg Brandl437e6a32007-08-17 06:27:11 +0000152 common in many other languages such as C.
153
Georg Brandl584265b2007-12-02 14:58:50 +0000154 expression
155 A piece of syntax which can be evaluated to some value. In other words,
156 an expression is an accumulation of expression elements like literals, names,
157 attribute access, operators or function calls that all return a value.
158 In contrast to other languages, not all language constructs are expressions,
159 but there are also :term:`statement`\s that cannot be used as expressions,
160 such as :keyword:`print` or :keyword:`if`. Assignments are also not
161 expressions.
162
Georg Brandl437e6a32007-08-17 06:27:11 +0000163 extension module
164 A module written in C, using Python's C API to interact with the core and
165 with user code.
Georg Brandl584265b2007-12-02 14:58:50 +0000166
167 function
168 A series of statements which returns some value to a caller. It can also
169 be passed zero or more arguments which may be used in the execution of
170 the body. See also :term:`argument` and :term:`method`.
171
Georg Brandl437e6a32007-08-17 06:27:11 +0000172 __future__
173 A pseudo module which programmers can use to enable new language features
174 which are not compatible with the current interpreter. For example, the
175 expression ``11/4`` currently evaluates to ``2``. If the module in which
176 it is executed had enabled *true division* by executing::
177
178 from __future__ import division
179
180 the expression ``11/4`` would evaluate to ``2.75``. By importing the
181 :mod:`__future__` module and evaluating its variables, you can see when a
182 new feature was first added to the language and when it will become the
183 default::
184
185 >>> import __future__
186 >>> __future__.division
187 _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
188
189 garbage collection
190 The process of freeing memory when it is not used anymore. Python
191 performs garbage collection via reference counting and a cyclic garbage
192 collector that is able to detect and break reference cycles.
193
194 generator
195 A function that returns an iterator. It looks like a normal function
196 except that values are returned to the caller using a :keyword:`yield`
197 statement instead of a :keyword:`return` statement. Generator functions
198 often contain one or more :keyword:`for` or :keyword:`while` loops that
199 :keyword:`yield` elements back to the caller. The function execution is
200 stopped at the :keyword:`yield` keyword (returning the result) and is
201 resumed there when the next element is requested by calling the
202 :meth:`next` method of the returned iterator.
203
204 .. index:: single: generator expression
205
206 generator expression
207 An expression that returns a generator. It looks like a normal expression
208 followed by a :keyword:`for` expression defining a loop variable, range,
209 and an optional :keyword:`if` expression. The combined expression
210 generates values for an enclosing function::
211
212 >>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81
213 285
214
215 GIL
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000216 See :term:`global interpreter lock`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000217
218 global interpreter lock
219 The lock used by Python threads to assure that only one thread can be run
220 at a time. This simplifies Python by assuring that no two processes can
221 access the same memory at the same time. Locking the entire interpreter
222 makes it easier for the interpreter to be multi-threaded, at the expense
223 of some parallelism on multi-processor machines. Efforts have been made
224 in the past to create a "free-threaded" interpreter (one which locks
225 shared data at a much finer granularity), but performance suffered in the
226 common single-processor case.
Georg Brandl7c3e79f2007-11-02 20:06:17 +0000227
228 hashable
229 An object is *hashable* if it has a hash value that never changes during
230 its lifetime (it needs a :meth:`__hash__` method), and can be compared to
231 other objects (it needs an :meth:`__eq__` or :meth:`__cmp__` method).
232 Hashable objects that compare equal must have the same hash value.
233
234 Hashability makes an object usable as a dictionary key and a set member,
235 because these data structures use the hash value internally.
236
237 All of Python's immutable built-in objects are hashable, while all mutable
238 containers (such as lists or dictionaries) are not. Objects that are
239 instances of user-defined classes are hashable by default; they all
240 compare unequal, and their hash value is their :func:`id`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000241
242 IDLE
243 An Integrated Development Environment for Python. IDLE is a basic editor
244 and interpreter environment that ships with the standard distribution of
245 Python. Good for beginners, it also serves as clear example code for
246 those wanting to implement a moderately sophisticated, multi-platform GUI
247 application.
248
249 immutable
250 An object with fixed value. Immutable objects are numbers, strings or
251 tuples (and more). Such an object cannot be altered. A new object has to
252 be created if a different value has to be stored. They play an important
253 role in places where a constant hash value is needed, for example as a key
254 in a dictionary.
255
256 integer division
257 Mathematical division discarding any remainder. For example, the
258 expression ``11/4`` currently evaluates to ``2`` in contrast to the
259 ``2.75`` returned by float division. Also called *floor division*.
260 When dividing two integers the outcome will always be another integer
261 (having the floor function applied to it). However, if one of the operands
262 is another numeric type (such as a :class:`float`), the result will be
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000263 coerced (see :term:`coercion`) to a common type. For example, an integer
Georg Brandl437e6a32007-08-17 06:27:11 +0000264 divided by a float will result in a float value, possibly with a decimal
265 fraction. Integer division can be forced by using the ``//`` operator
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000266 instead of the ``/`` operator. See also :term:`__future__`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000267
268 interactive
269 Python has an interactive interpreter which means that you can try out
270 things and immediately see their results. Just launch ``python`` with no
271 arguments (possibly by selecting it from your computer's main menu). It is
272 a very powerful way to test out new ideas or inspect modules and packages
273 (remember ``help(x)``).
274
275 interpreted
276 Python is an interpreted language, as opposed to a compiled one. This
277 means that the source files can be run directly without first creating an
278 executable which is then run. Interpreted languages typically have a
279 shorter development/debug cycle than compiled ones, though their programs
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000280 generally also run more slowly. See also :term:`interactive`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000281
282 iterable
283 A container object capable of returning its members one at a
284 time. Examples of iterables include all sequence types (such as
285 :class:`list`, :class:`str`, and :class:`tuple`) and some non-sequence
286 types like :class:`dict` and :class:`file` and objects of any classes you
287 define with an :meth:`__iter__` or :meth:`__getitem__` method. Iterables
288 can be used in a :keyword:`for` loop and in many other places where a
289 sequence is needed (:func:`zip`, :func:`map`, ...). When an iterable
290 object is passed as an argument to the builtin function :func:`iter`, it
291 returns an iterator for the object. This iterator is good for one pass
292 over the set of values. When using iterables, it is usually not necessary
293 to call :func:`iter` or deal with iterator objects yourself. The ``for``
294 statement does that automatically for you, creating a temporary unnamed
295 variable to hold the iterator for the duration of the loop. See also
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000296 :term:`iterator`, :term:`sequence`, and :term:`generator`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000297
298 iterator
299 An object representing a stream of data. Repeated calls to the iterator's
300 :meth:`next` method return successive items in the stream. When no more
301 data is available a :exc:`StopIteration` exception is raised instead. At
302 this point, the iterator object is exhausted and any further calls to its
303 :meth:`next` method just raise :exc:`StopIteration` again. Iterators are
304 required to have an :meth:`__iter__` method that returns the iterator
305 object itself so every iterator is also iterable and may be used in most
306 places where other iterables are accepted. One notable exception is code
307 that attempts multiple iteration passes. A container object (such as a
308 :class:`list`) produces a fresh new iterator each time you pass it to the
309 :func:`iter` function or use it in a :keyword:`for` loop. Attempting this
310 with an iterator will just return the same exhausted iterator object used
311 in the previous iteration pass, making it appear like an empty container.
312
Georg Brandle7a09902007-10-21 12:10:28 +0000313 More information can be found in :ref:`typeiter`.
314
Georg Brandl584265b2007-12-02 14:58:50 +0000315 keyword argument
316 Arguments which are preceded with a ``variable_name=`` in the call.
317 The variable name designates the local name in the function to which the
318 value is assigned. ``**`` is used to accept or pass a dictionary of
319 keyword arguments. See :term:`argument`.
320
321 lambda
322 An anonymous inline function consisting of a single :term:`expression`
323 which is evaluated when the function is called. The syntax to create
324 a lambda function is ``lambda [arguments]: expression``
325
Georg Brandl437e6a32007-08-17 06:27:11 +0000326 LBYL
327 Look before you leap. This coding style explicitly tests for
328 pre-conditions before making calls or lookups. This style contrasts with
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000329 the :term:`EAFP` approach and is characterized by the presence of many
Georg Brandl437e6a32007-08-17 06:27:11 +0000330 :keyword:`if` statements.
331
332 list comprehension
333 A compact way to process all or a subset of elements in a sequence and
334 return a list with the results. ``result = ["0x%02x" % x for x in
335 range(256) if x % 2 == 0]`` generates a list of strings containing hex
336 numbers (0x..) that are even and in the range from 0 to 255. The
337 :keyword:`if` clause is optional. If omitted, all elements in
338 ``range(256)`` are processed.
339
340 mapping
341 A container object (such as :class:`dict`) that supports arbitrary key
342 lookups using the special method :meth:`__getitem__`.
343
344 metaclass
345 The class of a class. Class definitions create a class name, a class
346 dictionary, and a list of base classes. The metaclass is responsible for
347 taking those three arguments and creating the class. Most object oriented
348 programming languages provide a default implementation. What makes Python
349 special is that it is possible to create custom metaclasses. Most users
350 never need this tool, but when the need arises, metaclasses can provide
351 powerful, elegant solutions. They have been used for logging attribute
352 access, adding thread-safety, tracking object creation, implementing
353 singletons, and many other tasks.
Georg Brandla7395032007-10-21 12:15:05 +0000354
355 More information can be found in :ref:`metaclasses`.
Georg Brandl584265b2007-12-02 14:58:50 +0000356
357 method
358 A function that is defined inside a class body. If called as an attribute
359 of an instance of that class, the method will get the instance object as
360 its first :term:`argument` (which is usually called ``self``).
361 See :term:`function` and :term:`nested scope`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000362
363 mutable
364 Mutable objects can change their value but keep their :func:`id`. See
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000365 also :term:`immutable`.
Georg Brandle3c3db52008-01-11 09:55:53 +0000366
367 named tuple
Raymond Hettingerd4c2e862008-01-15 03:07:42 +0000368 Any tuple subclass whose indexable fields are also accessible with
Raymond Hettingerc20ed512008-01-13 06:15:15 +0000369 named attributes (for example, :func:`time.localtime` returns a
Raymond Hettinger8bdd0442008-01-13 06:18:07 +0000370 tuple-like object where the *year* is accessible either with an
Raymond Hettingerc20ed512008-01-13 06:15:15 +0000371 index such as ``t[0]`` or with a named attribute like ``t.tm_year``).
372
373 A named tuple can be a built-in type such as :class:`time.struct_time`,
374 or it can be created with a regular class definition. A full featured
375 named tuple can also be created with the factory function
376 :func:`collections.namedtuple`. The latter approach automatically
377 provides extra features such as a self-documenting representation like
378 ``Employee(name='jones', title='programmer')``.
Georg Brandl437e6a32007-08-17 06:27:11 +0000379
380 namespace
381 The place where a variable is stored. Namespaces are implemented as
382 dictionaries. There are the local, global and builtin namespaces as well
383 as nested namespaces in objects (in methods). Namespaces support
384 modularity by preventing naming conflicts. For instance, the functions
385 :func:`__builtin__.open` and :func:`os.open` are distinguished by their
386 namespaces. Namespaces also aid readability and maintainability by making
387 it clear which module implements a function. For instance, writing
388 :func:`random.seed` or :func:`itertools.izip` makes it clear that those
389 functions are implemented by the :mod:`random` and :mod:`itertools`
390 modules respectively.
391
392 nested scope
393 The ability to refer to a variable in an enclosing definition. For
394 instance, a function defined inside another function can refer to
395 variables in the outer function. Note that nested scopes work only for
396 reference and not for assignment which will always write to the innermost
397 scope. In contrast, local variables both read and write in the innermost
398 scope. Likewise, global variables read and write to the global namespace.
399
400 new-style class
401 Any class that inherits from :class:`object`. This includes all built-in
402 types like :class:`list` and :class:`dict`. Only new-style classes can
403 use Python's newer, versatile features like :attr:`__slots__`,
404 descriptors, properties, :meth:`__getattribute__`, class methods, and
405 static methods.
Georg Brandla7395032007-10-21 12:15:05 +0000406
407 More information can be found in :ref:`newstyle`.
Georg Brandl437e6a32007-08-17 06:27:11 +0000408
Georg Brandl584265b2007-12-02 14:58:50 +0000409 positional argument
410 The arguments assigned to local names inside a function or method,
411 determined by the order in which they were given in the call. ``*`` is
412 used to either accept multiple positional arguments (when in the
413 definition), or pass several arguments as a list to a function. See
414 :term:`argument`.
415
Benjamin Peterson518c44c2008-05-16 22:59:28 +0000416 Python 3000
417 Nickname for the next major Python version, 3.0 (coined long ago
418 when the release of version 3 was something in the distant future.) This
419 is also abbreviated "Py3k".
Georg Brandl437e6a32007-08-17 06:27:11 +0000420
Georg Brandl584265b2007-12-02 14:58:50 +0000421 Pythonic
422 An idea or piece of code which closely follows the most common idioms of
423 the Python language, rather than implementing code using concepts common
424 in other languages. For example, a common idiom in Python is the :keyword:`for`
425 loop structure; other languages don't have this easy keyword, so people
426 use a numerical counter instead::
427
428 for i in range(len(food)):
429 print food[i]
430
431 As opposed to the cleaner, Pythonic method::
432
433 for piece in food:
434 print piece
435
Georg Brandl437e6a32007-08-17 06:27:11 +0000436 reference count
437 The number of places where a certain object is referenced to. When the
438 reference count drops to zero, an object is deallocated. While reference
439 counting is invisible on the Python code level, it is used on the
440 implementation level to keep track of allocated memory.
441
442 __slots__
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000443 A declaration inside a :term:`new-style class` that saves memory by
Georg Brandl437e6a32007-08-17 06:27:11 +0000444 pre-declaring space for instance attributes and eliminating instance
445 dictionaries. Though popular, the technique is somewhat tricky to get
446 right and is best reserved for rare cases where there are large numbers of
447 instances in a memory-critical application.
448
449 sequence
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000450 An :term:`iterable` which supports efficient element access using integer
Georg Brandl437e6a32007-08-17 06:27:11 +0000451 indices via the :meth:`__getitem__` and :meth:`__len__` special methods.
452 Some built-in sequence types are :class:`list`, :class:`str`,
453 :class:`tuple`, and :class:`unicode`. Note that :class:`dict` also
454 supports :meth:`__getitem__` and :meth:`__len__`, but is considered a
455 mapping rather than a sequence because the lookups use arbitrary
Georg Brandl6c82b6c2007-08-17 16:54:59 +0000456 :term:`immutable` keys rather than integers.
Georg Brandl437e6a32007-08-17 06:27:11 +0000457
Georg Brandl584265b2007-12-02 14:58:50 +0000458 slice
Georg Brandl968a3e52007-12-02 18:17:50 +0000459 An object usually containing a portion of a :term:`sequence`. A slice is
Georg Brandl584265b2007-12-02 14:58:50 +0000460 created using the subscript notation, ``[]`` with colons between numbers
461 when several are given, such as in ``variable_name[1:3:5]``. The bracket
462 (subscript) notation uses :class:`slice` objects internally (or in older
463 versions, :meth:`__getslice__` and :meth:`__setslice__`).
464
465 statement
466 A statement is part of a suite (a "block" of code). A statement is either
467 an :term:`expression` or a one of several constructs with a keyword, such
468 as :keyword:`if`, :keyword:`while` or :keyword:`print`.
469
Georg Brandl437e6a32007-08-17 06:27:11 +0000470 type
471 The type of a Python object determines what kind of object it is; every
472 object has a type. An object's type is accessible as its
473 :attr:`__class__` attribute or can be retrieved with ``type(obj)``.
474
475 Zen of Python
476 Listing of Python design principles and philosophies that are helpful in
477 understanding and using the language. The listing can be found by typing
478 "``import this``" at the interactive prompt.