Original Translation
31
A series of statements which returns some value to a caller. It can also be passed zero or more arguments which may be used in the execution of the body. See also :term:`argument` and :term:`method`.
32
A pseudo module which programmers can use to enable new language features which are not compatible with the current interpreter.
33
By importing the :mod:`__future__` module and evaluating its variables, you can see when a new feature was first added to the language and when it becomes the default::
34
>>> import __future__ >>> __future__.division _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
35
The process of freeing memory when it is not used anymore. Python performs garbage collection via reference counting and a cyclic garbage collector that is able to detect and break reference cycles.
Suggestion 0 by nobody:
, the purpose of the GIL is prielscey to make operations atomic and thus thread-safe, and people do rely on this behavior, no matter how good or bad it is. The subject of this post isn't about how to do threaded coding in a safe way.Also, relying on the atomicity of certain actions is essential to programming with threads in the first place. Hopefully you didn't perceive the generality of your sentence.
Suggestion 1 by nobody:
URVGhL <a href="http://gwqconkuzoev.com/">gwqconkuzoev</a>
36
A function which returns an iterator. It looks like a normal function except that values are returned to the caller using a :keyword:`yield` statement instead of a :keyword:`return` statement. Generator functions often contain one or more :keyword:`for` or :keyword:`while` loops which :keyword:`yield` elements back to the caller. The function execution is stopped at the :keyword:`yield` keyword (returning the result) and is resumed there when the next element is requested by calling the :meth:`__next__` method of the returned iterator.
37
An expression that returns an iterator. It looks like a normal expression followed by a :keyword:`for` expression defining a loop variable, range, and an optional :keyword:`if` expression. The combined expression generates values for an enclosing function::
38
>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81 285
39
See :term:`global interpreter lock`.
40
The lock used by Python threads to assure that only one thread executes in the :term:`CPython` :term:`virtual machine` at a time. This simplifies the CPython implementation by assuring that no two processes can access the same memory at the same time. Locking the entire interpreter makes it easier for the interpreter to be multi-threaded, at the expense of much of the parallelism afforded by multi-processor machines. Efforts have been made in the past to create a "free-threaded" interpreter (one which locks shared data at a much finer granularity), but so far none have been successful because performance suffered in the common single-processor case.