# locals()

`locals()` - это встроенная функция в Python, которая возвращает словарь, содержащий все локальные переменные в текущей области видимости.

**Назначение**:

* Получение доступа к локальным переменным в текущей области видимости (функции, модуле, классе).
* Извлечение и манипулирование локальными переменными.

**Возврат**:

* Возвращает словарь, содержащий все локальные переменные и их значения в текущей области видимости.

**Описание**:

* Не принимает аргументов.
* Возвращаемый словарь является изменяемым, поэтому его можно использовать для добавления, удаления или изменения локальных переменных.
* Доступ к глобальным переменным осуществляется через функцию `globals()`.

**Примеры**:

1. Получение локальных _<mark style="color:blue;">**переменных в функции**</mark>_
2. Изменение локальных _<mark style="color:purple;">**переменных через словарь**</mark>_
3. Получение локальных _<mark style="color:orange;">**переменных в классе**</mark>_

{% tabs %}
{% tab title="1." %}
```python
def my_function():
    x = 10
    y = 20
    local_vars = locals()
    print(local_vars)  # Вывод: {'x': 10, 'y': 20}

my_function()
```
{% endtab %}

{% tab title="2." %}
```python
def my_function():
    x = 10
    local_vars = locals()
    local_vars['x'] = 20
    print(x)  # Вывод: 20

my_function()
```
{% endtab %}

{% tab title="3." %}
```python
class MyClass:
    def __init__(self, value):
        self.value = value

    def get_locals(self):
        local_vars = locals()
        print(local_vars)  # Вывод: {'self': <__main__.MyClass object at 0x7f8b7c8a9d30>, 'value': 42}

obj = MyClass(42)
obj.get_locals()
```
{% endtab %}
{% endtabs %}

**Использование**:

* В отладке и анализе кода для просмотра и изменения локальных переменных.
* В метапрограммировании для динамической манипуляции локальными переменными.
* В фреймворках и библиотеках, где требуется доступ и управление локальными переменными.
* Для создания гибких и динамических функций или классов, где локальные переменные могут изменяться во время выполнения.
* В обучающих целях для демонстрации работы областей видимости и локальных переменных в Python.

Следует быть осторожным при изменении локальных переменных через словарь, возвращаемый `locals()`, так как это может привести к нежелательным побочным эффектам и снизить читаемость кода. Обычно рекомендуется использовать `locals()` только для чтения локальных переменных, а не для их изменения.
