Glossary¶
>>>- The default Python prompt of the interactive shell. Often seen for code examples which can be executed interactively in the interpreter.
...- The default Python prompt of the interactive shell when entering code for an indented code block, when within a pair of matching left and right delimiters (parentheses, square brackets, curly braces or triple quotes), or after specifying a decorator.
- 2to3
A tool that tries to convert Python 2.x code to Python 3.x code by handling most of the incompatibilities which can be detected by parsing the source and traversing the parse tree.
2to3 is available in the standard library as
lib2to3; a standalone entry point is provided asTools/scripts/2to3. See 2to3 - 自動將 Python 2的程式碼轉成 Python 3.- abstract base class
- Abstract base classes complement duck-typing by
providing a way to define interfaces when other techniques like
hasattr()would be clumsy or subtly wrong (for example with magic methods). ABCs introduce virtual subclasses, which are classes that don’t inherit from a class but are still recognized byisinstance()andissubclass(); see theabcmodule documentation. Python comes with many built-in ABCs for data structures (in thecollections.abcmodule), numbers (in thenumbersmodule), streams (in theiomodule), import finders and loaders (in theimportlib.abcmodule). You can create your own ABCs with theabcmodule. - annotation
A label associated with a variable, a class attribute or a function parameter or return value, used by convention as a type hint.
Annotations of local variables cannot be accessed at runtime, but annotations of global variables, class attributes, and functions are stored in the
__annotations__special attribute of modules, classes, and functions, respectively.See variable annotation, function annotation, PEP 484 and PEP 526, which describe this functionality.
- argument
A value passed to a function (or method) when calling the function. There are two kinds of argument:
keyword argument: an argument preceded by an identifier (e.g.
name=) in a function call or passed as a value in a dictionary preceded by**. For example,3and5are both keyword arguments in the following calls tocomplex():complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})
positional argument: an argument that is not a keyword argument. Positional arguments can appear at the beginning of an argument list and/or be passed as elements of an iterable preceded by
*. For example,3and5are both positional arguments in the following calls:complex(3, 5) complex(*(3, 5))
Arguments are assigned to the named local variables in a function body. See the Calls section for the rules governing this assignment. Syntactically, any expression can be used to represent an argument; the evaluated value is assigned to the local variable.
See also the parameter glossary entry, the FAQ question on the difference between arguments and parameters, and PEP 362.
- asynchronous context manager
- An object which controls the environment seen in an
async withstatement by defining__aenter__()and__aexit__()methods. Introduced by PEP 492. - asynchronous generator
A function which returns an asynchronous generator iterator. It looks like a coroutine function defined with
async defexcept that it containsyieldexpressions for producing a series of values usable in anasync forloop.Usually refers to a asynchronous generator function, but may refer to an asynchronous generator iterator in some contexts. In cases where the intended meaning isn’t clear, using the full terms avoids ambiguity.
An asynchronous generator function may contain
awaitexpressions as well asasync for, andasync withstatements.- asynchronous generator iterator
An object created by a asynchronous generator function.
This is an asynchronous iterator which when called using the
__anext__()method returns an awaitable object which will execute that the body of the asynchronous generator function until the nextyieldexpression.Each
yieldtemporarily suspends processing, remembering the location execution state (including local variables and pending try-statements). When the asynchronous generator iterator effectively resumes with another awaitable returned by__anext__(), it picks up where it left off. See PEP 492 and PEP 525.- asynchronous iterable
- An object, that can be used in an
async forstatement. Must return an asynchronous iterator from its__aiter__()method. Introduced by PEP 492. - asynchronous iterator
- An object that implements the
__aiter__()and__anext__()methods.__anext__must return an awaitable object.async forresolves the awaitables returned by an asynchronous iterator’s__anext__()method until it raises aStopAsyncIterationexception. Introduced by PEP 492. - attribute
- A value associated with an object which is referenced by name using dotted expressions. For example, if an object o has an attribute a it would be referenced as o.a.
- awaitable
- An object that can be used in an
awaitexpression. Can be a coroutine or an object with an__await__()method. See also PEP 492. - BDFL
- Benevolent Dictator For Life, a.k.a. Guido van Rossum, Python’s creator.
- binary file
A file object able to read and write bytes-like objects. Examples of binary files are files opened in binary mode (
'rb','wb'or'rb+'),sys.stdin.buffer,sys.stdout.buffer, and instances ofio.BytesIOandgzip.GzipFile.See also text file for a file object able to read and write
strobjects.- bytes-like object
An object that supports the Buffer Protocol and can export a C-contiguous buffer. This includes all
bytes,bytearray, andarray.arrayobjects, as well as many commonmemoryviewobjects. Bytes-like objects can be used for various operations that work with binary data; these include compression, saving to a binary file, and sending over a socket.Some operations need the binary data to be mutable. The documentation often refers to these as 「read-write bytes-like objects」. Example mutable buffer objects include
bytearrayand amemoryviewof abytearray. Other operations require the binary data to be stored in immutable objects (「read-only bytes-like objects」); examples of these includebytesand amemoryviewof abytesobject.- bytecode
Python source code is compiled into bytecode, the internal representation of a Python program in the CPython interpreter. The bytecode is also cached in
.pycfiles so that executing the same file is faster the second time (recompilation from source to bytecode can be avoided). This 「intermediate language」 is said to run on a virtual machine that executes the machine code corresponding to each bytecode. Do note that bytecodes are not expected to work between different Python virtual machines, nor to be stable between Python releases.A list of bytecode instructions can be found in the documentation for the dis module.
- class
- A template for creating user-defined objects. Class definitions normally contain method definitions which operate on instances of the class.
- class variable
- A variable defined in a class and intended to be modified only at class level (i.e., not in an instance of the class).
- coercion
- The implicit conversion of an instance of one type to another during an
operation which involves two arguments of the same type. For example,
int(3.15)converts the floating point number to the integer3, but in3+4.5, each argument is of a different type (one int, one float), and both must be converted to the same type before they can be added or it will raise aTypeError. Without coercion, all arguments of even compatible types would have to be normalized to the same value by the programmer, e.g.,float(3)+4.5rather than just3+4.5. - complex number
- An extension of the familiar real number system in which all numbers are
expressed as a sum of a real part and an imaginary part. Imaginary
numbers are real multiples of the imaginary unit (the square root of
-1), often writteniin mathematics orjin engineering. Python has built-in support for complex numbers, which are written with this latter notation; the imaginary part is written with ajsuffix, e.g.,3+1j. To get access to complex equivalents of themathmodule, use
