Следует ли закрывать файл внутри определения функции?

Как можно описать функцию "работает" в коде, которая является модулем и вызывается из файла osnova.py?
  • 25 мая 2024 г. 7:50
Ответы на вопрос 3
1. Да, следует закрывать файл внутри определения функции, чтобы избежать утечки ресурсов. Например, можно использовать конструкцию `with open(filename) as file`.

2. Для описания функции "работает", которая является модулем и вызывается из файла osnova.py, можно создать файл с именем "работает.py" со следующим содержимым:

```python
def работает():
    print("Функция 'работает' выполнена.")
```

Затем в файле osnova.py можно импортировать эту функцию и вызвать ее:

```python
from работает import работает

работает()
```
По хорошему нужно. 
Посмотрите еще в сторону контекстных менеджеров. Это конструкция вида
With open() as f
....
Сейчас у вашего кода один минус: 
если будет исключение до закрытия файла, то файл будет открыт до конца обработки исключения.

Если не делать f.close(), то будет второй минус:
в зависимости от реализации питона, коллектор мусора может не успеть закрыть файл до его следующего применения

Поэтому: используйте with .
Похожие вопросы