Главная » Просмотр файлов » Лутц М. - Изучаем Python

Лутц М. - Изучаем Python (1077325), страница 30

Файл №1077325 Лутц М. - Изучаем Python (Лутц М. - Изучаем Python) 30 страницаЛутц М. - Изучаем Python (1077325) страница 302018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

д.) и другие методы (веец — перемещает позицию чтенияггзаписи в файле). В этой книге мы будем изучать их позднее, но если у вас появится желание быстро ознакомиться с ними, запустите функцию б(г, передав ей слово (11е (имя типа данных), а затем функцию Ье1р с любым из имен методов в качестве аргумента: Глава 4. Введение а типы объектов языка Ру1[топ 1з6 Ое1а11г(поте ', Паза ', ' (п[1 ', ' 11ег, ' пеи геоосе ', ' геоосе ех ', ' герг ', ' зета11г ', ' зтг 'с1озе, 'с1озес', 'епсос1пр', '111епо', '11озл', '1затту', 'зобе, 'паве', 'пеи11пез', 'пех1', 'геас', 'геабзп1о', 'геаб1зпе', 'геаб11пез', 'зеек', 'за(тарасе', '1е11', '1гопсате', 'иг(те', 'игзта1(пез', 'хгеаб11пез'] »> Пе1р(111е.зева) ...Попробуйте и увидите..

Другие средства, напоминающие файлы Функция орел — это рабочая лошадка в большинстве операций с файлами, которые можно выполнять в языке Ру1Ьоп. Для решения более специфичных задач Ру1йоп поддерживает и другие инструментальные средства, напоминающие файлы: каналы, очереди, сокеты, файлы с доступом по ключу, хранилища объектов, файлы с доступом по дескриптору, интерфейсы к реляционным и объектно-ориентированным базам данных и многие другие. Файлы с доступом по дескриптору, например, поддерживают возможность блокировки и другие низкоуровневые операции, а сокеты представляют собой интерфейс к сетевым взаимодействиям.

В этой книге мы не будем подробно рассматривать эти темы, но знание этих особенностей окажется для вас полезным, как только вы начнете всерьез программировать на языке Ру1)зоп. Другие базовые типы Помимо базовых типов данных, которые мы уже рассмотрели, существуют и другие, которые могут считаться базовыми, в зависимости от широты определения этой категории. Например, множества совсем недавно появились в языке.

Множества — это контейнеры для других объектов. Множества создаются встроенной функцией зе1 и поддерживают типичные математические операции над множествами: »> Х = зе1('зрав') »> у = зе1(['и', 'а', 'в']) № создветсп два иновествв последоввтепьностей »> Х, У (зе1(['а', 'р', 'з', 'в']), зе1(['а', 'П', 'в'))) >» х а т зет(['а', 'в']) № Пересечение »> Х ) у № Обьединение зет([ а', 'р', 'з', 'и', 'в']) № Разность »> Х - У зет(['р, з ]) Кроме того, недавно в Ру1Ьоп появились вещественные числа с фиксированной точностью и тип Воо]еап [с предопределенными объектами Тгсе и Ра1зе, которые по сути являются целыми числами 0 и 1 с некоторыми особенностями отображения на экране), а кроме того, давно уже существует специальный объект (топе: Другие базовые типы »> 1врогС бес1ва! № Вещественные числа с биксированной точностью »> б = бес(ва1.0ес1ва1('3.141') »> б + 1 Пес! ща!( "4.

141" ) »>1>2, 1<2 (Еа1зе, Тгце) »> ЬооИ 'врав') Тгое № Погичвскив значения № Специальный объект Иоле »> Х = Иопе »> рг1пС Х Мопе »> 1 = [Иоле) * 100 № Инициализация списка из ста обьектов Иоле »> [Моле, йопе, Моле, йопе. Иоле, йопе, Иоле, Иопе, Иоле, Иоле, Мопе, Иоле, попе, ...список из 100 объектов Иоле...) »> Суре(1) <суре !Свс '> № Типи »> Суре(суре(1)) <суре 'туре'> № Пахе типы являются обьвктаии Как можно нарушить гибкость программного кода Мы еще будем много говорить обо всех этих типах данных далее в книге, но сначала я хочу сделать важный акцент. Объект суре позволяет выполнять проверку типов объектов в программном коде, который использует эти объекты. Сделать это в сценариях на языке РуС)соп можно как минимум тремя способами: »> и Суре(1) = Суре([)): № Проверка типа, если в этом есть необкодииость..

рг1пС 'уев' уез »> а№ Суре(ъ) == !1вС: № С использованиви иивни типа рг1пС 'увв' уез >» 1№ 1в1пвсвпсв(ц !1вс): № проверка в объектно-ориентированном стиле рг1пС 'уев' уез Однако теперь, когда я показал вам все эти способы проверки типа объекта, я должен заметить, что использование таких проверок в программном коде практически всегда является неверным решением (и отличительным признаком бывшего программиста на языке С, приступившего к программированию на языке РуС)зоп). Наличие проверок на принадлежность объекта к тому или иному типу отрицательно сказывается на гибкости программного кода, потому что вы ограничиваете его работой с единственным типом данных.

Без таких проверок ваш 1зв Глава 4. Введение в типы объектов языка Ру(Ьоп программный код может оказаться в состоянии работать с более широким диапазоном типов. Это связано с идей полиморфизма, о которой упоминалось ранее, и это основная причина отсутствия необходимости описывать типы переменных в языке РуФЬоп. Как будет говориться далее, программный код на языке Ру(Ьоп ориентируется на использование интерфейсов объектов (набор поддерживаемых операций), а не их типов.

Отсутствие заботы об определенных типах означает, что программный код автоматически может обслуживать большинство из них — допустимыми будут любые объекты с совместимыми интерфейсами, независимо от конкретного типа. И хотя контроль типов поддерживается — а в редких случаях даже необходим, — тем не менее это обычно не способ думать на языке Ру(Ьоп. Вы сами убедитесь, что ключевой идеей, обеспечивающей успех использования Ру(Ьоп, является полиморфизм. Классы, определяемые пользователем Мы рассмотрим объектно-ориентированный стиль программирования на языке Ру(Ьоп (необязательную к применению, но весьма мощную особенность языка, которая позволяет сократить время разработки за счет многократного использования программного кода) подробно далее в этой книге.

Тем не менее, говоря абстрактными терминами, классы определяют новые типы объектов, которые расширяют базовый набор, и потому они заслуживают упоминания здесь. Например, вам мог бы потребоваться такой тип объектов, который моделировал бы сотрудников. В языке РуФЬоп нет такого базового типа, тем не менее следующий класс вполне мог бы удовлетворить ваши потребности: »> с1авв Вогиег: бе( 1п11 (ве1№, паве, рау): ве1№.паве = паве вв1Г рву = рау бв( 1авсйаве(ве1№): гетцгп ве1№.паве.врШ()(-1) бе( 01чеяа1ве(вв1№, регсепт); ве1№.рау = (1.0 + регсепС) № Инициализация лри создании № зе1à — это сам обьект № Разбить строку ло символам пробела № Обновить сумиу виолет »> ЬоЬ = иогиег('ЗоЬ Зв11П', 50000) »> вце = иогавг('Зце запев', 00000) »> Ьоо. 1ав(авве() 'Змып' »> вце, 1автйаве() № создаются даа экземпляра и для какдого № определяется иия и суииа вмплат № Зивов метода: зе!Г - это Оос № ЗЕ1Г - ЭтО Зоя Данный класс определяет новый тип объектов, который обладает атрибутами паве и рау (иногда атрибуты называют информацией о состоянии), а также два описания поведения, оформленных в виде функций (которые обычно называют методами).

Обращение к имени класса как к функции приводит к созданию экземпляра нового типа, а методы класса автоматически получают ссылку на текущий экземпляр, обрабатываемый этими методами (аргумент зе1(): 139 В заключение 'болев' »> вое.01»ваа1ввь 10) »> вов.рау 66000.0 Ф Обновить сунну вияявт дяя Вов Модель называется объектно-ориентированной потому, что здесь присутствует подразумеваемый объект «зеН»: внутри функций, определяемых в классах, всегда присутствует подразумеваемый объект. В некотором смысле типы, основанные на классах, просто создаются на базе основных типов и используют их функциональные возможности.

В данном случае пользовательский класс Ио ткет — это всего лишь коллекция, состоящая из строки и числа (лазе и рауЬ плюс функции, выполняющие обработку этих двух встроенных объектов. Кроме того, механизм наследования классов поддерживает программные иерархии, которые допускают возможность их расширения. Возможности программного обеспечения расширяются за счет создания новых классов, но при этом не изменяется программный код, который уже работает.

Вместе с тем, вы должны понимать, что классы в языке РуФЬоп не являются обязательными к применению, и нередко более простые встроенные типы, такие как списки и словари, оказываются эффективнее классов, определяемых пользователем. Однако все это выходит далеко за рамки ознакомительной главы, поэтому, чтобы продолжить знакомство, вам придется прочитать следующие главы. И все остальное В заключение На этом мы заканчиваем наш краткий обзор типов данных. В этой главе вашему вниманию было предложено краткое введение в базовые типы Как уже упоминалось ранее, все данные, которые обрабатываются сценариями на языке РуФЬоп, являются объектами, поэтому наш краткий обзор типов объектов никак нельзя назвать исчерпывающим.

Однако, даже при том, что все сущее в языке РуФЬоп является «объектом», только рассмотренные типы образуют базовый набор. Другие типы объектов, как правило, реализуются в виде модулей и не являются синтаксическими элементами языка. Кроме того, они обычно имеют узкий круг применения — текстовые шаблоны, интерфейсы доступа к базам данных, сетевые взаимодействия и т. д. Более того, имейте в виду, что объекты, с которыми мы здесь познакомились, действительно являются объектами, но для работы с ними не требуется использовать объектно-ориентированный подход — концепция, которая обычно подразумевает использование механизма наследования и оператора с1ааз, с которыми мы еще встретимся далее в этой книге.

Однако базовые объекты языка РуФЬоп — это рабочие лошадки практически любого сценария, и, как правило, они являются основой более крупных типов, не являющихся базовыми. Глава 4. Введение в типы объектов языка Рутбоп объектов языка Ру(Ьоп и операции, которые могут к ним применяться. Мы рассмотрели наиболее универсальные операции, которые могут применяться к объектам различных типов (операции над последовательностями, такие как обращение к элементам по их индексам и извлечение срезов), а также операции, специфичные для определенных типов, реализованные в виде методов (например, разбиение строки и добавление элементов в список). Здесь также были даны определения некоторых ключевых терминов, такие как неизменность, последовательности и полиморфизм.

Характеристики

Тип файла
DJVU-файл
Размер
11,21 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее