diff --git a/translations/README-ru.md b/translations/README-ru.md index b588ff7..315e9e5 100644 --- a/translations/README-ru.md +++ b/translations/README-ru.md @@ -2473,3 +2473,47 @@ a += [5, 6, 7, 8] * Выражение `a += [5,6,7,8]` фактически отображается на функцию "extend", которая работает со списком так, что `a` и `b` по-прежнему указывают на тот же самый список, который был изменен на месте. --- + + +### ▶ Разрешение имен игнорирует область видимости класса + +1\. +```py +x = 5 +class SomeClass: + x = 17 + y = (x for i in range(10)) +``` + +**Результат:** +```py +>>> list(SomeClass.y)[0] +5 +``` + +2\. +```py +x = 5 +class SomeClass: + x = 17 + y = [x for i in range(10)] +``` + +**Результат (Python 2.x):** +```py +>>> SomeClass.y[0] +17 +``` + +**Результат (Python 3.x):** +```py +>>> SomeClass.y[0] +5 +``` + +#### 💡 Объяснение +- Области видимости, вложенные внутрь определения класса, игнорируют имена, связанные на уровне класса. +- Выражение-генератор имеет свою собственную область видимости. +- Начиная с версии Python 3.X, списковые вычисления также имеют свою собственную область видимости. + +---