Переменные модуля Python в текущем рабочем пространстве

Как я уже упоминал ранее, я изначально пришел из Matlab, а затем перешел на PHP, прежде чем открыть Python. И в Matlab, и в PHP были способы создания сценариев, которые при запуске все переменные сбрасывались в текущее рабочее пространство. Это рабочее пространство в Matlab является интерпретатором при вызове оттуда или рабочим пространством функции при вызове из функции. Я бы использовал эту возможность для констант — например, инструментов для построения графиков, где вы хотите определить набор шрифтов по умолчанию, ширину линий и т. Д.

Теперь в Python я могу импортировать модуль, но тогда все константы ссылок в этом модуле требуют from {module} import * или же {module}.{constant},

Это действительно не ограничивает меня, это просто неудобство. Тем не менее, было бы неплохо иметь возможность импортировать файл констант и просто иметь константы, доступные для всех, кто их вызывает.

Я подозреваю, что Python не позволяет этого, но я подумал, что я хотел бы спросить, есть ли у кого-нибудь умная работа вокруг.

1

Решение

Это не то, что вы обычно должны делать просто для того, чтобы немного набрать текст, но вот один из способов сделать это:

# define some constants
PI = 3.1415927
ANSWER = 42
UNLUCKY = 13

# put them into __main__ module (your interactive session)
if __name__ != "__main__":
import sys as _sys
_sys.modules["__main__"].__dict__.update(
dict((k, v) for (k, v) in globals().iteritems() if not k.startswith("_")))
0

Другие решения

Я не уверен в вашем вопросе, но, возможно, ваша IDE поможет вам избавиться от этого импорта. Например, в Spyder вы можете запустить скрипт запуска, который будет запускаться при запуске новой консоли. Размещение вашего импорта обеспечит прямой доступ к этим файлам.

0

По вопросам рекламы [email protected]