The Python Language Reference / Справочник по языку Python

→Objects are never explicitly destroyed; however, when they become unreachable they may be garbage-collected. An implementation is allowed to postpone garbage collection or omit it altogether — it is a matter of implementation quality how garbage collection is implemented, as long as no objects are collected that are still reachable.
0 Объекты никогда явно не уничтожаются, тем не менее, когда они становятся недоступны они могут быть обработаны Сборщиком мусора. В реализации возможны поздняя сборка мусора или полное ее отсутствие. Каким образом реализована сборка мусора - это вопрос качества реализации. До тех пор пока объекты не собраны сборщиком мусора, они все еще доступны.
→Every object has an identity, a type and a value. An object’s identity never changes once it has been created; you may think of it as the object’s address in memory. The ‘is‘ operator compares the identity of two objects; the id() function returns an integer representing its identity (currently implemented as its address). An object’s type is also unchangeable. [1] An object’s type determines the operations that the object supports (e.g., “does it have a length?”) and also defines the possible values for objects of that type. The type() function returns an object’s type (which is an object itself). The value of some objects can change. Objects whose value can change are said to be mutable; objects whose value is unchangeable once they are created are called immutable. (The value of an immutable container object that contains a reference to a mutable object can change when the latter’s value is changed; however the container is still considered immutable, because the collection of objects it contains cannot be changed. So, immutability is not strictly the same as having an unchangeable value, it is more subtle.) An object’s mutability is determined by its type; for instance, numbers, strings and tuples are immutable, while dictionaries and lists are mutable.
0 Каждый объект имеет идентификатор, тип и значение. Идентификатор объекта никогда не изменяется после создания объекта, его можно представить себе как адрес объекта в памяти. Оператор 'is' сравнивает идентификаторы двух объектов; функция id() возвращает целое число, представляющее идентификатор (на текущий момент реализованный как адрес объекта). Тип объекта так же неизменяем. [1] Тип объекта определяет операции, поддерживаемые объектом (например, имеет ли объект длину), а также возможные значения для объекта заданного типа. Функция type() возвращает тип объекта (который в свою очередь является объектом). Значение некоторых объектов может меняться. Объекты, значение которых может меняться называются изменяемыми; объекты, значение которых не может быть изменено после создания называются неизменяемыми. (Значение неизменяемого объекта - контейнера, который содержит ссылки на изменяемые объекты может меняться когда значение последних изменено, тем не менее контейнер рассматривается как неизменяемый, потому что набор содержащихся в нем объектов не может быть изменен. Т.о., неизменяемость это в точности то же самое, что и неизменное значение объекта, это более точный термин.). Изменяемость объекта определяется его типом; например, числа, строки и записи неизменяемы, тогда как словари и списки изменяемы.
→name ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"
0 name ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"
→Even though the notation used is almost the same, there is a big difference between the meaning of lexical and syntactic definitions: a lexical definition operates on the individual characters of the input source, while a syntax definition operates on the stream of tokens generated by the lexical analysis. All uses of BNF in the next chapter (“Lexical Analysis”) are lexical definitions; uses in subsequent chapters are syntactic definitions.
0 Несмотря на то, что используемая нотация в основном одинакова, следует различать значение лексических и синтаксических определений: лексические определения оперируют отдельными символами в качестве входного источника , в то время как синтаксические определения оперируют с потоками токенов, созданными лексическим анализом. Все использования BNF в следующей главе - лексические определения, в последующих главах - синтаксический определения.
→In lexical definitions (as the example above), two more conventions are used: Two literal characters separated by three dots mean a choice of any single character in the given (inclusive) range of ASCII characters. A phrase between angular brackets (<...>) gives an informal description of the symbol defined; e.g., this could be used to describe the notion of ‘control character’ if needed.
0 В лексических определениях (таких как в примере выше), мспользуются еще 2 соглашения. Два буквенных символа, разделеные тремя точками обозначают любой символ из заданного интервала ASCII символов. Фраза в треугольных скобках дает неформальное описание определяемого символа, например она может использоваться для описания значения 'управляющих символов', если это необходимо.
→Each rule begins with a name (which is the name defined by the rule) and ::=. A vertical bar (|) is used to separate alternatives; it is the least binding operator in this notation. A star (*) means zero or more repetitions of the preceding item; likewise, a plus (+) means one or more repetitions, and a phrase enclosed in square brackets ([ ]) means zero or one occurrences (in other words, the enclosed phrase is optional). The * and + operators bind as tightly as possible; parentheses are used for grouping. Literal strings are enclosed in quotes. White space is only meaningful to separate tokens. Rules are normally contained on a single line; rules with many alternatives may be formatted alternatively with each line after the first beginning with a vertical bar.
0 Каждое правило начинается с имени ( которое представляет имя, опеределенное правилом) и ::=. Вертикальная черта (|) используется для разделения альтернативных вариантов, это наименьший связующий оператор в этой нотации. Звезда (*) обозначает 0 или более повторений предшествующего элемента; аналогично, плюс (+) обозначает 1 или более повторений, фраза, заключенная в квадратные скобки [] обозначает 0 или 1 вхождение (другими словами, фраза в квадратных скобках является необязательной). Пробелы используются только для разделения токенов. Правила обычно располагаются в одной строке; правила с несколькими альтернативами могут быть оформлены иначе, каждая линия после первой начинается с вертикальной черты.
→The first line says that a name is an lc_letter followed by a sequence of zero or more lc_letters and underscores. An lc_letter in turn is any of the single characters 'a' through 'z'. (This rule is actually adhered to for the names defined in lexical and grammar rules in this document.)
0 В первой строке сказано, что Name (имя) - это lc_letter за которой следует ноль или более lc_letter и значок подчеркивания. lc_letter - это в свою очередь одиночный символ между 'a' и 'z'. ( Это правило фактически относится к именам, определенным по лексическим и граматическим правилам в этом документе).
→1.2. Notation
The descriptions of lexical analysis and syntax use a modified BNF grammar notation. This uses the following style of definition:
0 1.2 Нотация
Описание лексического анализа и синтаксиса использует модицифированный вариант грамматической нотации BNF. Используются следующие виды определений:
→Each of these implementations varies in some way from the language as documented in this manual, or introduces specific information beyond what’s covered in the standard Python documentation. Please refer to the implementation-specific documentation to determine what else you need to know about the specific implementation you’re using.
0 Каждая из этих реализаций в чем-то отличается от языка, описанного в этом руководстве или представляет дополнительную информацию помимо того, что имеется в стандартной документации Python. Пожалуйста обращайтесь к документации по конкретной реализации языка, чтобы понять что еще нужно знать об используемой вами реализации.
→PyPy
An implementation of Python written in Python; even the bytecode interpreter is written in Python. This is executed using CPython as the underlying interpreter. One of the goals of the project is to encourage experimentation with the language itself by making it easier to modify the interpreter (since it is written in Python). Additional information is available on the PyPy project’s home page.
0 PyPy
Реализация Python, написанная на Python. В качестве исполняющей среды используется CPython, как базовый интерпретатор. Одна из целей проекта - поддержать эксперимент над языком, создав более простой для модификации интерпретатор ( поскольку он также написан на Python). Дополнительная информация доступна на домашней странице проекта PyPy.
→IronPython
An alternate Python for .NET. Unlike Python.NET, this is a complete Python implementation that generates IL, and compiles Python code directly to .NET assemblies. It was created by Jim Hugunin, the original creator of Jython. For more information, see the IronPython website.
0 IronPython
Альтернативная реализация Python для .NET. В отличие от Python.NET она реализует Python полностью, преобразовывается в промежуточный язык IL, и компилируется напрямую сборки .NET. Реализация создана Джимос Хаганин, первым автором Jython. Для дальнейшей информации см. вейсайт IronPython .
→Python for .NET
This implementation actually uses the CPython implementation, but is a managed .NET application and makes .NET libraries available. It was created by Brian Lloyd. For more information, see the Python for .NET home page.
0 Python для .NET.
Эта реализация фактически использует реализацию CPython, но она является управляемым приложением .NET и в ней доступны библиотеки .NET. Эта реализация была создана Брайном Ллойдом. Больше информации вы найдете на домашней странице Python для .NET.
→Every Python implementation comes with a number of built-in and standard modules. These are documented in The Python Standard Library. A few built-in modules are mentioned when they interact in a significant way with the language definition.
0 Каждая реализация Python поставляется со встоенными стандартыми модулями. Они задокументированы в руководстве The Python Standard Library. Встроенные модули упоминаются в том случае, когда они оказывают существенное влияние на определение языка.
→It is dangerous to add too many implementation details to a language reference document — the implementation may change, and other implementations of the same language may work differently. On the other hand, CPython is the one Python implementation in widespread use (although alternate implementations continue to gain support), and its particular quirks are sometimes worth being mentioned, especially where the implementation imposes additional limitations. Therefore, you’ll find short “implementation notes” sprinkled throughout the text.
0 Опасно добавлять в документ с описание языка слишком много деталей реализации. Реализация может измениться, а различные реализации одного языка могут работать по разному. С другой стороны, CPython - это широко распространенная реализация языка Python (хотя альтернативные реализации продолжают завоевывать популярность) и его особенности иногда заслуживают рассмотрения, в особенности там, где реализация накладывает дополнительные ограничения. Поэтому, в тексте вы иногда найдете короткие "заметки по реализации".
Резюме
Пол:
женщина
Родной язык:
русский
С нами:
с 18 декабря 2009 г. (6149 дней)
Не является членом клуба.
Деятельность:
191 версия перевода с общим рейтингом 2
8 комментариев
Карма: 2 (оценок: 2)
Написать Viktorianka личное сообщение