Это немного продолжение после this question.Почему местность определяется во время компиляции?
- Почему местность определяется во время компиляции, а не во время выполнения? Это чисто для производительности?
- Есть ли языки, которые ищут свои переменные во время выполнения? То есть каждый раз, когда к переменной обращаются, эту переменную сначала ищут в локальной области, а затем поиск возрастает через все охватывающие области?
- Как это делают языки ECMA?
Чтобы задать вопрос 2 других слова: Есть ли языки, где следующий код (в необходимом синтаксисе) работает:
def f(): print ('f')
def g():
f()
f = 42
g()
Что должен делать код? –
Печать 'f' без поднятия' несвязанной локальной переменной' или что-то в этом направлении. – Hyperboreus