Date: 2006-08-27 06:20 pm (UTC)
netch: (Default)
From: [personal profile] netch
> Мне кажется, ты понимаешь import как способ изменить видимость переменных. Это не так.

> "from A import g1" вводит имя g1 в модуле main. С этим именем связывается объект, который был связан с именем g1 в модуле A. Объект, а не имя. Мы не начинаем видеть переменную A.g1 как g1, мы получаем новую переменную g1, которая в начальный момент имеет то же значение.

Никакого "начального момента" нет, это всё время одна и та же переменная, введённая в глобальные данного модуля. Что чётко и сказано в документации.

> После этого, когда ты делаешь присваивание g1 в main, ты изменяешь связывание этого имени в main. На каталог A это не оказывает никакого влияния. Что твой пример и иллюстирует.

А вот когда я делаю присваивание g1, происходит присваивание другой g1 - локальной для данного блока. Цитата из документации была в постинге. Это можно проверить и практически:


x = 0
def f():
  x = 1
  print x
def g():
  print x
if __name__ == '__main__':
  f()
  g()


Запускаем:


1
0


> Логика вполне нормальная,

Нет. ™

> просто не надо накладывать свои некорректные интерпретации на спецификацию языка.

Некорректных интерпретаций нет. Я начал писать тот постинг когда разобрался что же происходит и где оно в документации.

> (Я бы не завелся, если бы единственным твоим тезисом было "у Питона неадекватная документация", что есть правда.)

В каком смысле неадекватная? По-моему как раз документация адекватна реализации. И вообще она очень неплохая - после того как разберёшься с парой общих принципов построения. А вот реализация в данном месте резко неадекватна здравому смыслу.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

netch: (Default)
netch

December 2023

S M T W T F S
     12
3456789
10111213141516
171819 20212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 03:15 pm
Powered by Dreamwidth Studios