Напишите несколько строк кода Python X
, который не ссылается ни на какие глобальные переменные, например
def method():
X
print(a)
method()
печатает 1
но
def method():
X
X
print(a)
method()
отпечатки 2
.
Таким образом, я не хочу быть приверженцем, но, похоже , vars
и locals
на самом деле глобальные переменные в Python:
def test_global_1():
global vars, locals
vars = lambda: 2
locals = lambda: 3
def test_global_2():
print(vars())
print(locals())
test_global_1()
test_global_2()
Кроме того, похоже, что люди хотели бы видеть объективные критерии победы для подобных головоломок. Длина кода здесь не совсем подходит, так что, может быть, мы могли бы создать систему коричневых очков для различных новых функций кода? Я не уверен, что именно это может быть, но вот начало:
- +1 для действительно действительно нет глобальных (нет
vars
илиlocals
) - +1 за то, что первым опубликовал конкретную технику
- +1 за самое короткое опубликованное решение
- +1 за решение, включающее только одну инструкцию Python
- +1 за интересные "хаки", такие как присоединение к лексическим границам
- +1 за неиспользование исключений
И если вы можете думать больше, вы можете отредактировать этот вопрос, чтобы добавить в список.
Можно ли решить эту проблему, не используя исключения и не используя глобальные переменные типа vars
и locals
? Я подозреваю, что это возможно, хотя я еще не выяснил, как именно ...
X
, но есть и другие варианты.