Как в Python получить значение переменной, зная её имя?

Как узнать значение переменной, хранящейся в файле, если она была найдена в программе?
  • 8 января 2024 г. 17:58
Ответы на вопрос 3
Если у вас есть имя переменной в виде строки, и вы хотите получить значение этой переменной в вашем текущем пространстве имен, вы можете использовать функцию `globals()` или `locals()`. Вот пример:

```python
x = 10
variable_name = "x"
value = globals()[variable_name]
print(value)  # Выведет: 10
```

Функция `globals()` возвращает словарь глобального пространства имен, в котором ключами являются имена переменных, а значениями - их значения. Функция `locals()` возвращает словарь локального пространства имен, который обычно используется внутри функций.

Чтобы получить значение переменной, хранящейся в файле, вам нужно сначала прочитать этот файл и корректно интерпретировать содержимое. Примером может быть файл со значениями переменных в формате JSON:

**config.json**
```json
{
  "x": 10,
  "y": 20
}
```

Чтобы прочитать этот JSON-файл и получить значение `x`, вы можете сделать следующее:

```python
import json

# Чтение файла JSON
with open('config.json', 'r') as f:
    config = json.load(f)

# Доступ к значению переменной по имени
x_value = config.get('x')
print(x_value)  # Выведет: 10
```

Если содержимое файла представляет собой программный код Python, например:

**config.py**
```python
x = 10
```

Вы можете использовать модуль, чтобы заимпортировать переменные из этого файла:

```python
# Импортирование значений из файла config.py
import config

print(config.x)  # Выведет: 10
```

Это работает, потому что файл `config.py` интерпретируется как модуль, после чего переменные определены в пространстве имен этого модуля.
print(eval(variable_name))
print(locals()[sc])
Похожие вопросы