= Уточнения к объектной модели питона = * контрольная * орг. вопрос: время занятий * орг. вопрос: устройство курса, зачётные задания, темы * операция is * понятие пространства имён и его соотношение со словарём; vars, dir * пространство имён объекта ({{{__dict__}}}) * пространство имён функции * замыкания, глобальные переменные * пространство имён модуля (глобальное пространство имён) == Контрольная работа == Предисловие: операция {{{is}}} проверяет, являются ли оба её аргумента одним и тем же объектом. Например, {{{#!python >>> class A(object): ... pass >>> a = A() >>> b = a >>> c = A() >>> a is a True >>> a is b True >>> a is c False }}} Заполните пустые места в следующих диалогах с питоном: {{{#!python >>> "a" == "a" >>> "a" is "a" >>> "a" * 10000 == "a" * 10000 >>> "a" * 10000 is "a" * 10000 >>> x = "a" >>> y = x >>> x = x + "b" >>> x is y + "b" >>> [1] is [1] >>> x = [1] >>> y = x >>> x.append(2) >>> x == y >>> x is y >>> a = A() >>> a.x = 1 >>> b = a >>> b.x = 2 >>> a is b }}} PS. На этом примере мы видим, что невероятная ''ужас''ня творится в вопросе, являются ли две равные строки одним объектом или разными. Аналогично с кортежами. Отсюда мораль: операция is нужна не для них.