Вы можете использовать оператор class
, чтобы ввести временную "область видимости":
x = 5
class Foo:
print(x)
x = 6
print(x)
print(x)
Это "работает", потому что Foo
не устанавливает истинно новую область, то есть первую print(x)
ссылается на текущее имя в области действия x
, но присваивается во временной запретной зоне для подготовки к созданию атрибута класса с тем же именем, и этот атрибут используется для оставшейся части тела.Однако этого, на мой взгляд, достаточно для имитации того, что вы просите.
(Тем не менее, на самом деле не используйте это на практике. Пишите правильные функции или сохраняйте значения вручную, если вам нужна какая-то сортировка).временного переопределения.)