Python - основные концепции :: Бройтман Олег
Страница: 2 из 3 | |||
| ||||||||||||||
| ||||||||||||||
КАТЕГОРИИ КНИГПОСЛЕДНИЕ ОТЗЫВЫ О КНИГАХМихаил (19.04.2017 - 06:11:11) Антихрист666 (18.04.2017 - 21:05:58) Ладно, теперь поспешили вы... (18.04.2017 - 20:50:34) Роман (18.04.2017 - 18:12:26) АНДРЕЙ (18.04.2017 - 16:42:55) СЛУЧАЙНОЕ ПРОИЗВЕДЕНИЕЯ знаю, ты живёшь на облаках, 30.08.10 - 01:29 Хотите чтобы ваше произведение или ваш любимый стишок появились здесь? добавьте его! |
Длинное целое - это целое число потенциально бесконечной длины; с помощью таких чисел можно производить вычисления неограниченной разрядности; длинные целые эмулируются библиотекой, встроенной в интерпретатор. Вещественное соответствует типу double. Комплексные числа - это пара вещественных, записываемых в инженерной (а не математической) нотации: 21 + 12j.
Строки - просто последовательности символов. Строки бывают ASCII и Unicode, их можно перекодировать друг в друга. ASCII-строки можно также перекодировать в другую кодировку (например, koi8 <=> win1251) Списки в качестве элементов могут содержать любые объекты. Списки неограниченной длины, и в них можно добавлять и удалять элементы, изменяя таким образом их длину. Списки в Питоне одномерные. Для эмуляции многомерных массивов можно использовать списки, элементами которых являются списки. Для эффективной обработки многомерных числовых матриц есть дополнительный модуль расширения Numerical Python . Словари (ассоциативные массивы) - это отображения (mapping), сопоставляющие уникальному ключу произвольный объект. Ключом словаря может быть любой неизменяемый объект. Изменяемые и неизменяемые объекты; адресная арифметика и ссылки Объекты в Питоне бывают двух разновидностей - изменяемые и неизменяемые. Списки, например - объекты изменяемые, их содержимое и длину можно менять. Поскольку ключами словарей могут быть только неизменяемые объекты, в Питоне есть специальный тип неизменяемых списков - кортежи. Числа, естественно, объекты неизменяемые. Также неизменяемыми являются строки, в отличии от многих других языков программирования. Хотя классы, написанные программистами, порождают изменяемые объекты, у программиста есть возможность написать класс, экземпляры которого могут быть ключами словаря. Адресной арифметики в Питоне нет. Вообще. Поэтому разименовать нулевой указатель просто невозможно. Ссылки (указатели) в Питоне есть, но манипулирование ими осуществляется прозрачно для программиста. В действительности все переменные в Питоне являются ссылками на объекты; поэтому, например, запись a = b означает "в переменную a скопировать ссылку из переменной b ". Также списки и словари хранят не объекты, а ссылки на объекты. Присваивание и разыменование ссылок производится автоматически. Каждый объект в Питоне хранит счетчик ссылок, и при таком копировании ссылки этот счетчик увеличивается. Счетчик же ссылок того объекта, на который переменная a указывала раньше - уменьшается. Когда счетчик достигает 0, объект считается неиспользуемым, для него вызывается деструктор (если это экземпляр класса с деструктором), и память объекта освобождается. Такой механизм называется "синхронной сборкой мусора со счетчиком ссылок". Помимо него, в Питоне есть асинхронный сборщик мусора, достоинство которого в том, что он умеет распознавать циклические ссылки и очищать объекты, на которые нет других ссылок (не из цикла). (Пример циклических ссылок: l=[]; l.append(l)) Рассмотрим поподробнее питоновские ссылки. Создадим список и присвоим его (на самом деле присвоим ссылку на него) в переменную a : a = [21, 12, "str"]. Теперь присвоим ссылку из a в переменную b : a = b . Изменим список, на который ссылается a , скажем, добавим в него содержимое другого списка: a += [2000]. На какой список ссылается переменная b ? На тот же, что и a - на список из 4 элементов. Происходит это потому, что b все еще хранит ссылку на тот же список, что и a . А теперь присвоим в a новый список: a = [12, 21]. Что теперь будет в b ? А все тот же список из 4 элементов. Присваивание в a разорвало связь между a и b . В переменной a теперь ссылка на новый список, а в переменной b все та же ссылка на тот же список. |
ИНТЕРЕСНОЕ О ЛИТЕРАТУРЕ
ТОП 20 КНИГ
ТОП 20 АВТОРОВ
| ||||||||||||
|