= Уточнения к объектной модели питона =

 * контрольная
 * орг. вопрос: время занятий
 * орг. вопрос: устройство курса, зачётные задания, темы
 * операция 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 нужна не для них.