Сообщение Re[2]: [python] eval не видит locals в list comprehension от 06.04.2023 12:48
Изменено 06.04.2023 12:49 Кодт
Re[2]: [python] eval не видит locals в list comprehension
Здравствуйте, Буравчик, Вы писали:
Б>Что, намного становится хуже с globals?
Не я писал этот код, поэтому сказать, насколько хуже, — не знаю. Но мотивация была именно такая.
Хотя... я знаю, как пофиксить.
Напишу каскадный словарь.
Что-то в духе
ну или буду профилировать и смотреть, насколько страшен чёрт, если делать
Б>Что, намного становится хуже с globals?
Не я писал этот код, поэтому сказать, насколько хуже, — не знаю. Но мотивация была именно такая.
Хотя... я знаю, как пофиксить.
Напишу каскадный словарь.
Что-то в духе
class SuperGlobals:
def __init__(self, g, l):
self.g, self.l = g, l
def __getitem__(self, k):
return self.l[k] if k in self.l else self.g[k]
def __contains__(self, k):
return k in self.l or k in self.gну или буду профилировать и смотреть, насколько страшен чёрт, если делать
g = dedicated_globals()
l = dedicated_locals()
g.update(l)
eval(....., g, None)Re[2]: [python] eval не видит locals в list comprehension
Здравствуйте, Буравчик, Вы писали:
Б>Что, намного становится хуже с globals?
Не я писал этот код, поэтому сказать, насколько хуже, — не знаю. Но мотивация была именно такая.
Хотя... я знаю, как пофиксить.
Напишу каскадный словарь.
Что-то в духе
ну или буду профилировать и смотреть, насколько страшен чёрт, если делать
Б>Что, намного становится хуже с globals?
Не я писал этот код, поэтому сказать, насколько хуже, — не знаю. Но мотивация была именно такая.
Хотя... я знаю, как пофиксить.
Напишу каскадный словарь.
Что-то в духе
class SuperGlobals:
def __init__(self, g, l):
self.g, self.l = g, l
def __getitem__(self, k):
return self.l[k] if k in self.l else self.g[k]
def __contains__(self, k):
return k in self.l or k in self.gну или буду профилировать и смотреть, насколько страшен чёрт, если делать
g = copy.copy(dedicated_globals())
l = dedicated_locals()
g.update(l)
eval(....., g, None)