Если ваша цель - заставить код проверять значение a
, которое вы изначально объявили (т.е. 3), чтобы он печатал True
; False
вместо обратного, просто не устанавливайте a
на 2 внутри вашей функции:
def f(func, value):
print(func(value))
a = 3
f(lambda x: x == a, 3)
f(lambda x: x == a, 2)
Использование global
обычно не рекомендуется, потому что это позволяет очень легко ввести себя в заблуждение, если значения изменяются неожиданным образом.