Мне нужно создать несколько глобальных констант с фиксированными именами, примерно так:
В define.py:
class Initialize:
def __init__(self, user, pw):
self.conn = "here I open my connection with user and pw"
print(self.conn)
global PI
PI = 3.14
def __enter__(self):
return
def __exit__(self, type, value, traceback):
print("here I close my connection self.conn")
В main.py:
from defin import Initialize
with Initialize('username', 'password') as myconn:
print(PI)
Но это не работает, а если я запускаю весь код в уникальном all.py, например:
class Initialize:
def __init__(self, user, pw):
self.conn = "here I open my connection with user and pw"
print(self.conn)
global PI
PI = 3.14
def __enter__(self):
return self.conn
def __exit__(self, type, value, traceback):
print("here I close my connection self.conn")
with Initialize('username', 'password') as myconn:
print(PI)
, он работает. Я знаю, что глобальные переменные являются уровнями модуля, но здесь я фактически запускаю свой диспетчер контекста в основном модуле ... Очевидно, что мой реальный код более сложен, чем этот, и мне действительно нужно оставить объявление const в диспетчере контекста. Как мне получить константу в основном модуле?