mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 02:54:25 +01:00
Translate Wild imports example
This commit is contained in:
parent
bbb086a521
commit
8f60bc1d0b
61
translations/README-ru.md
vendored
61
translations/README-ru.md
vendored
@ -2782,3 +2782,64 @@ def similar_recursive_func(a):
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### ▶ Подстановочное импортирование (wild imports) *
|
||||||
|
<!-- Example ID: 83deb561-bd55-4461-bb5e-77dd7f411e1c --->
|
||||||
|
<!-- read-only -->
|
||||||
|
|
||||||
|
```py
|
||||||
|
# File: module.py
|
||||||
|
|
||||||
|
def some_weird_name_func_():
|
||||||
|
print("works!")
|
||||||
|
|
||||||
|
def _another_weird_name_func():
|
||||||
|
print("works!")
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
**Результат**
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> from module import *
|
||||||
|
>>> some_weird_name_func_()
|
||||||
|
"works!"
|
||||||
|
>>> _another_weird_name_func()
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "<stdin>", line 1, in <module>
|
||||||
|
NameError: name '_another_weird_name_func' is not defined
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 💡 Объяснение:
|
||||||
|
|
||||||
|
- Часто рекомендуется не использовать импорт с подстановочными знаками (wildcard import). Первая очевидная причина заключается в том, что при импорте с подстановочным знаком имена с ведущим подчеркиванием не импортируются. Это может привести к ошибкам во время выполнения.
|
||||||
|
|
||||||
|
- Если бы мы использовали синтаксис `from ... import a, b, c`, приведенная выше `NameError` не возникла бы.
|
||||||
|
```py
|
||||||
|
>>> from module import some_weird_name_func_, _another_weird_name_func
|
||||||
|
>>> _another_weird_name_func()
|
||||||
|
works!
|
||||||
|
```
|
||||||
|
- Если вы действительно хотите использовать импорт с подстановочными знаками, то нужно определить список `__all__` в вашем модуле, который будет содержать публичные объекты, доступные при wildcard импортировании.
|
||||||
|
```py
|
||||||
|
__all__ = ['_another_weird_name_func']
|
||||||
|
|
||||||
|
def some_weird_name_func_():
|
||||||
|
print("works!")
|
||||||
|
|
||||||
|
def _another_weird_name_func():
|
||||||
|
print("works!")
|
||||||
|
```
|
||||||
|
**Результат**
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> _another_weird_name_func()
|
||||||
|
"works!"
|
||||||
|
>>> some_weird_name_func_()
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "<stdin>", line 1, in <module>
|
||||||
|
NameError: name 'some_weird_name_func_' is not defined
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
Loading…
Reference in New Issue
Block a user