Skip to content

Commit f96fce1

Browse files
[po] auto sync
1 parent 31a36a9 commit f96fce1

3 files changed

Lines changed: 46 additions & 2 deletions

File tree

.stat.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"translation": "0.95%", "updated_at": "2025-11-25T14:23:17Z"}
1+
{"translation": "0.96%", "updated_at": "2025-11-25T15:25:22Z"}

tutorial/modules.mo

6.59 KB
Binary file not shown.

tutorial/modules.po

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,12 @@ msgid ""
10721072
"could take a long time and importing sub-modules might have unwanted side-"
10731073
"effects that should only happen when the sub-module is explicitly imported."
10741074
msgstr ""
1075+
"Что же происходит, когда пользователь пишет ``from sound.effects import *``?"
1076+
" В идеале можно было бы надеяться, что это каким-то образом пройдёт по "
1077+
"файловой системе, найдёт все подмодули в пакете и импортирует их. Это могло "
1078+
"бы занять много времени, а импорт подмодулей мог бы иметь нежелательные "
1079+
"побочные эффекты, которые должны происходить только при явном импорте "
1080+
"подмодуля."
10751081

10761082
#: ../../tutorial/modules.rst:503
10771083
msgid ""
@@ -1085,16 +1091,28 @@ msgid ""
10851091
"for importing \\* from their package. For example, the file "
10861092
":file:`sound/effects/__init__.py` could contain the following code::"
10871093
msgstr ""
1094+
"Единственное решение — чтобы автор пакета предоставил явный перечень его "
1095+
"содержимого. Инструкция :keyword:`import` использует следующее соглашение: "
1096+
"если в файле :file:`__init__.py` пакета определён список с именем "
1097+
"``__all__``, он считается списком имён модулей, которые должны быть "
1098+
"импортированы при выполнении ``from package import *``. Автор пакета должен "
1099+
"поддерживать этот список в актуальном состоянии при выпуске новой версии "
1100+
"пакета. Авторы пакетов также могут решить вовсе не поддерживать его, если не"
1101+
" считают полезным использование импорта со звёздочкой для своего пакета. "
1102+
"Например, файл :file:`sound/effects/__init__.py` может содержать следующий "
1103+
"код::"
10881104

10891105
#: ../../tutorial/modules.rst:513
10901106
msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]"
1091-
msgstr ""
1107+
msgstr "__all__ = [\"echo\", \"surround\", \"reverse\"]"
10921108

10931109
#: ../../tutorial/modules.rst:515
10941110
msgid ""
10951111
"This would mean that ``from sound.effects import *`` would import the three "
10961112
"named submodules of the :mod:`!sound.effects` package."
10971113
msgstr ""
1114+
"Это будет означать, что ``from sound.effects import *`` импортирует три "
1115+
"указанных подмодуля пакета :mod:`!sound.effects`."
10981116

10991117
#: ../../tutorial/modules.rst:518
11001118
msgid ""
@@ -1105,6 +1123,12 @@ msgid ""
11051123
"the ``reverse`` submodule, because it is shadowed by the locally defined "
11061124
"``reverse`` function::"
11071125
msgstr ""
1126+
"Имейте в виду, что подмодули могут быть скрыты локально определёнными "
1127+
"именами. Например, если вы добавили функцию ``reverse`` в файл "
1128+
":file:`sound/effects/__init__.py`, то ``from sound.effects import *`` будет "
1129+
"импортировать только два подмодуля — ``echo`` и ``surround`` — но **не** "
1130+
"подмодуль ``reverse``, потому что его скрывает локально определённая функция"
1131+
" ``reverse``::"
11081132

11091133
#: ../../tutorial/modules.rst:525
11101134
msgid ""
@@ -1117,6 +1141,14 @@ msgid ""
11171141
"def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n"
11181142
" return msg[::-1] # in the case of a 'from sound.effects import *'"
11191143
msgstr ""
1144+
"__all__ = [\n"
1145+
" \"echo\", # ссылается на файл 'echo.py'\n"
1146+
" \"surround\", # ссылается на файл 'surround.py'\n"
1147+
" \"reverse\", # !!! теперь ссылается на функцию 'reverse'!!!\n"
1148+
"]\n"
1149+
"\n"
1150+
"def reverse(msg: str): # <-- это имя скрывает подмодуль 'reverse.py'\n"
1151+
" return msg[::-1] # в случае 'from sound.effects import *'"
11201152

11211153
#: ../../tutorial/modules.rst:534
11221154
msgid ""
@@ -1130,13 +1162,25 @@ msgid ""
11301162
"package that were explicitly loaded by previous :keyword:`import` "
11311163
"statements. Consider this code::"
11321164
msgstr ""
1165+
"Если ``__all__`` не определён, инструкция ``from sound.effects import *`` "
1166+
"*не* импортирует все подмодули из пакета :mod:`!sound.effects` в текущее "
1167+
"пространство имён; она только гарантирует, что пакет :mod:`!sound.effects` "
1168+
"был импортирован (возможно, запуская любой код инициализации из "
1169+
":file:`__init__.py`), а затем импортирует имена, определённые в пакете. Это "
1170+
"включает любые имена (и явно загруженные подмодули), определённые в "
1171+
":file:`__init__.py`. Это также включает любые подмодули пакета, которые были"
1172+
" явно загружены предыдущими инструкциями :keyword:`import`. Рассмотрим этот "
1173+
"код::"
11331174

11341175
#: ../../tutorial/modules.rst:543
11351176
msgid ""
11361177
"import sound.effects.echo\n"
11371178
"import sound.effects.surround\n"
11381179
"from sound.effects import *"
11391180
msgstr ""
1181+
"import sound.effects.echo\n"
1182+
"import sound.effects.surround\n"
1183+
"from sound.effects import *"
11401184

11411185
#: ../../tutorial/modules.rst:547
11421186
msgid ""

0 commit comments

Comments
 (0)