Если ты пишешь на Python, то наверняка видел в стандартных библиотеках определения методов, обернутых в двойные подчеркивания. Эти «магические» методы образуют многие из полезных интерфейсов, которыми ты постоянно пользуешься, - например, когда получаешь значение по номеру элемента или выводишь что-то через print. Эти методы можно и нужно использовать и в своих программах. Как - сейчас покажу.

Вообще, любой хорошо спроектированный язык определяет набор соглашений и применяет их в своей стандартной библиотеке. Соглашения могут касаться как чисто внешних признаков, вроде синтаксиса названий (CamelCase , snake_case), так и поведения объектов. Язык Python в этом смысле - весьма последовательный.

Синтаксис в Python нерасширяем, но зато интерфейсы взаимодействия между объектами хорошо определены и доступны любому разработчику. В отличие от Java в Python нет формальной концепции интерфейсов класса, любой класс может предоставлять любой интерфейс, достаточно определить методы с нужными именами и аргументами и убедиться, что их поведение соответствует ожидаемому.

Интерфейсы в Python

Поскольку Python динамически типизирован, проверить соответствие класса объекта на этапе компиляции невозможно. Возможности для указания аннотаций типов из Python 3.5 предназначены прежде всего для внешних статических анализаторов и не используются во время выполнения. Явная проверка класса с помощью type() считается дурным тоном.

В крайнем случае можно использовать isinstance() - в отличие от type() эта функция возвращает True не только для самого класса, но и для всех его потомков. Проверка с помощью type() сломается при наследовании, именно поэтому люди к ней так плохо относятся.

Интерфейсы объектов определяются так называемыми магическими методами. По соглашению их имена окружаются двойным подчеркиванием. Метод __init__() , который служит конструктором класса, - пример, известный каждому. Почти каждая стандартная операция, включая форматированный вывод и арифметику, реализуется каким-то магическим способом.

Для демонстрации мы напишем примитивную и медленную реализацию ассоциативного массива на основе списка из кортежей, «идентичную натуральной» в смысле интерфейса.

Делаем свой ассоциативный массив

Реализация будет очень простой - связный список из пар «ключ - значение». Например, эквивалент ассоциативного массива {1: 2, 3: 4} будет [(1, 2), (3, 4)] . Она значительно медленнее встроенной: например, поиск значения элемента по ключу будет требовать O(n) операций, в то время как встроенная требует O(1). Для демонстрации, впрочем, вполне сойдет.

Свой класс мы назовем Assoc . Определим класс и его конструктор:

Class Assoc(object): def __init__(self, contents=): self._contents = contents

Для удобства тестирования мы сделали, чтобы начальное значение можно было передать в конструкторе, вроде Assoc([(1,2), (3,4)]) .

Добавляем строковые представления

В Python существуют два разных метода для получения строкового представления объектов: __repr__ и __str__ . Различие между ними довольно тонкое, но существенное: __repr__ , по замыслу, должен выдавать допустимое выражение Python, с помощью которого можно создать такой же объект. Это не всегда возможно, поэтому на практике у многих объектов он возвращает просто что-то такое, что позволяет разработчику идентифицировать объект, вроде . Именно он вызывается, если ввести имя переменной в интерактивном интерпретаторе.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

Детский стишок про Робина-Бобина, который скушал сорок человек, перестает быть смешным и абсурдным, когда речь заходит о… питонах. Ученые во Флориде были в шоке от того, что они обнаружили после вскрытия трупа бирманского питона у него в желудке.

Новое исследование, опубликованное в журнале BioInvasion Records, фиксирует случай довольно необычного и редкого поведения змеи. Самка бирманского питона съела трех белохвостых оленей в течение 87 дней. Она установила своеобразный рекорд прожорливости. Родом из Юго-Восточной Азии, эта агрессивная особь была поймана (и впоследствии усыплена) учеными заповедника Эверглейдс во Флориде в 2013 году.

Змеи являются частью экосистемы всего мира и умеют проникать в самые труднодоступные места. В южной Флориде бирманский питон проделал свой путь через тысячи квадратных километров, в том числе территорию Национального парка Эверглейдс.

Присутствие питонов в Эверглейдс ознаменовало заметное снижение численности средних и крупных животных, в том числе оленей, кроликов, рысей и енотов.

Когда ученые нашли эту особь, ее длина была 4,32 м, вес - 48,3 кг. Последующее вскрытие показало огромное количество фекалий в толстой кишке змеи, которая была 79 см в длину и весила 6,5 кг. Исследование непереваренной массы из костей, зубов и копыт внутри питона показало, что змея съела трех белохвостых оленей. Невероятно, но каждый из оленей представлял собой 93%, 35% и 27% массы питона. Очевидно, что маленькие «доли» - это оленята, возраст которых приблизительно 14 - 30 дней. Питон скрывался в воде, захватывая оленей, когда они приходили на водопой.

Это первый известный случай вскрытия бирманского питона, кишечник которого содержал остатки нескольких белохвостых оленей, - прокомментировали исследователи. - Даже самые большие змеи южной Флориды не способны потреблять млекопитающих среднего размера. Следовательно, питоны, привезенные сюда из других территорий, представляют собой новую угрозу популяции белохвостых оленей в их местах обитания.

Съесть трех оленей за три месяца - факт указывает на впечатляющий метаболизм змеи. Млекопитающее примерно такой же массы не выживет, питаясь три раза в три месяца. Однако даже с такой небольшой очередностью приема пищи хищные змеи явно нарушают экосистему Флориды.

Змеи являются особенно успешной группой «инвазивных видов» из-за их замедленного метаболизма, низкой энергетической потребности, разнообразия потребляемых в пищу видов и высокого репродуктивного потенциала.


И действительно, чудный образец с тремя оленями в его кишечнике отлично это демонстрирует. Как пишут авторы статьи, «значительное количество энергии, полученной во время потребления оленей, явно способствовало отложению большого количества жира и развитию фолликулов, найденных внутри самки питона, необходимых змее, чтобы перейти на высокий темп роста и обеспечить репродуктивный успех - важнейшие компоненты внедрения в любую новую экосистему».

Как часто питаються Бирманские питоны? и получил лучший ответ

Ответ от ***Т@тьян@***[гуру]


Интересно, что при таком "неудобном" рационе питон переваривает свою еду достаточно быстро. В противном случае, имея в пищеварительном тракте, например, проглоченного телёнка, змей, естественно, становится крайне неповоротливым и сам может легко стать чьей-то добычей.

Ответ от Виктория [гуру]
Он часто охотится на животных, приходящих на водопой. Кроме копытных, обезьян и грызунов нападает на небольших крокодилов, варанов, агам и других рептилий
бирманские питоны - одни из самых крупных змей в мире - достигают восьми метров в длину и весят до 180 килограмм. Как правило, эти змеи сторонятся людей. Они считаются довольно опасными, так как могут, свернувшись вокруг человека, легко задавить его насмерть
Совсемнедавнопрошлановостьотом, чтоВСШАпитона, которыйпыталсяпереваритьдвухметровогоаллигатора, разорвалопополам. Сегоднясталоизвестнооновомэпизодесбирманскимпитоном, укоторогобыланайденаподозрительнаявыпуклостьнателе. ВамериканскомштатеФлоридабирманскийпитонсподозрительнойвыпуклостьювживотебылподвергнутрентгеновскомуобследованию, котороепоказало, чторептилиясожраласиамскогокота. ВминувшеевоскресеньесемьяРодригесовобнаружила3,5-метровогопитонавозлесвоегодомавМайами. Впищеварительномтрактеузмеинаблюдаласьбольшаявыпуклость. ПосколькунезадолгодоэтогоусемьипропалихгодовалыйсиамскийкотпокличкеФрэнсес, Родригесызаподозрилисамоехудшее. “Яуверен, унеговнутрикошка”,-сказалАндрес, одинизсыновей. Уегоматери, Элидии, тожеестьподозрения, нооназаявила, чтонужноудостовериться. “Явсежехочуточнознать, чтовживотеузмеиименноон”,-сказалаженщина. Найденногопитонаотвезливзаказник, гдеемусделалирентгеновскоеобследование, котороеопределило, чтопитоннасамомделесъелсиамскогокота. “Рентгенпоказал, чтовыпуклостьвжелудкепитона–этоиестькот, которогоонсожрал”,-сказалветеринарУильямЧавес


Ответ от Обложко Владимир [гуру]
Известны три подвида этих рептилий: это Индийский светлый тигровый питон Python molurus molurus, змея средней величины, обычно не превышает 4-х метров, но известны и шестиметровые экземпляры. Распространен в Пакистане, Индии, Бангладеш. Окраска этого подвида светлее двух других. В связи с интенсивным освоением природных мест обитания ареал индийского питона резко сократился. В настоящее время питоны встречаются в заповедных и национальных парках на юге и юго-востоке Индии. Индийский светлый тигровый питон охраняется законом, включен в национальную и международную Красные книги, и в первое приложение списков СИТЕС. Разводится в неволе, но в террариумах любителей встречается крайне редко.
Цейлонский тигровый питон - Python m. pimbura - самый мелкий из тигровых питонов. Обычно его длина не превышает 2 - 3 метра. Внешне похож на светлого тигрового питона, с которым ранее объединялся в один подвид. Отличается от индийского питона помимо размера, формой головы. Python m. pimbura -эндемик острова Цейлон (Шри-Ланка) , населяющий немногие сохранившиеся в первозданном виде леса и джунгли. Включен в национальную и международную Красные книги, и во второе приложение списков СИТЕС. Из-за мелких размеров, для любителей террариума желанный вид для содержания, но достаточно дорог и редок, разводится в неволе.
И наконец Темный тигровый питон - P. m. bivittatus - самый крупный, самый яркий и самый обычный в коллекциях зоопарков и террариумистов питон из этой группы. Окрашен темнее других подвидов (отсюда название) , населяет горные дождевые леса (именно его называют "горный бирманский питон") Южного Китая, Вьетнама, Камбоджи, Север Таиланда, Лаоса, Бирмы. В горы поднимается до 1800 м над уровнем моря. Достигает длинны до 7 м, но в террариуме обычно около 4-5 м, а некоторые его морфы и того меньше. P. m. bivittatus включен во второе приложение списков СИТЕС. В натоящее время в мире существует достаточно много морф и цветовых вариаций этого питона.
Кормят молодых питонов 1 раз в 7-10 дней, взрослых 1 раз в 10-20 дней, соответствующими по размеру кормовыми объектами: мышами, крысами, морскими свинками, кроликами, птицей. Обычно питоны не привередливы в еде и поглощают любой придложенный им корм подходящих по размеру, хотя иногда встречаются исключения специализирующиеся на одном пищевом предпочтении, например на птице, по этому приобретая животное необходимо поинтересоваться о его вкусовых пристрастиях. Иногда питоны подросткового возраста и взрослые животные могут отказывается от пищи и голодать по 1-6 месяца без ущерба для здоровья. Это связано с имитацией природной сезонности, зимовкой, сменой кожи, половым поведением и т. п.


Ответ от Игорь павлов [гуру]
Бирманские питоны могут питаться всего несколько раз в год, переваривая своих жертв без остатка. Согласно исследованию биолога Роберта Поупа (Robert K. Pope) из университета Индианы в Саут-Бенд (Indiana University South Bend) и его коллеги Жана-Херве Линьо (Jean-Hervé Lignot,) из университета Луи Пастера (Université Louis Pasteur), секрет такого природного "таланта" – в особом типе клеток, ранее неизвестном науке.
Особенности пищеварения бирманских питонов поистине удивительны. Эти животные умудряются за один присест поглотить пищу массой вдвое больше их веса. К тому же питание происходит у них довольно редко.
Интересно, что при таком "неудобном" рационе питон переваривает свою еду достаточно быстро. В противном случае, имея в пищеварительном тракте, например, проглоченного телёнка, змей, естественно, становится крайне неповоротливым и сам может легко стать чьей-то добычей.
Механическая основа этого процесса заключается в способности внутренних органов питона к растяжению. Но долгое время было непонятно, за счёт чего происходит усвоение – ведь бирманский питон неким образом переваривает еду полностью (за исключением, разве что, перьев и пуха) .
Как выяснили Поуп и Линьо, такое переваривание обеспечивается за счёт особого типа клеток, которые они назвали клетками-ловушками. Эти клетки имеют форму углублений на стенках кишечника. В ходе переваривания они контактируют с пищей, а микроворсинки соседних клеток "ловят" её частицы, помещая их внутрь клетки-ловушки.
В этих клетках накапливаются частички костной ткани, которые затем подвергаются дальнейшему расщеплению.
По словам Поупа, основная "задача" клеток-ловушек – помочь в усвоении как можно большего количества кальция.
Исследователи утверждают, что клетки такого типа у других живых существ не встречаются.!!!

Многие века змеи вызывали у людей самые противоречивые чувства: одни их боготворили и считали символом мудрости, исцеления, обновления и воскрешения. Другие считали существом, которое принадлежит потустороннему миру и состоит на службе темных сил. Именно страх породил множество мифов и легенд, в том числе и об их размерах, силе, кровожадности и прожорливости. О том, какая змея самая большая в мире, расскажет Prostozoo.

Существует множество легенд и рассказов об огромных змеях, обычно людоедах, длина которых достигала 30 метров, в обхвате они были, как огромное дерево, а когда ползли через лес или посадки – ломались молодые деревца. Однако на самом деле таких гигантов не существовало за всю историю животного мира. Согласно последним археологическим находкам, а также исследованиям Музея и исследовательского центра Smithsonian, самая большая и длинная змея в мире – Титанобоа - жила 60 млн лет назад и пришла на смену вымершим динозаврам. Ее длина составляла больше 15 метров и весила она больше тонны.

Источник фото: http://techno.bigmir.net

Источник фото: http://techno.bigmir.net

Современные змеи по сравнению со своим предком несколько мельче, но и они часто впечатляют своими размерами. Настоящими лидерами являются сетчатый питон, гигантская (зеленая) , бирманский или тёмный тигровый питон.

Все три вида относятся к одному семейству – ложноногие. Главная их особенность – это наличие рудиментов задних конечностей. Мощная мускулатура позволяет змеям умерщвлять добычу путем удушья, при этом кости жертвы не ломаются, как считали ранее. Змея могла бы сама пострадать от сломанной кости добычи, поэтому она только сильнее сжимает, когда животное выдыхает, в этом случае вдох практически невозможен. Окраска у змей этого семейства самая разнообразная, но даже если она пестрая, все равно позволяет змее слиться с окружающей средой на земле.

Сетчатый питон

Питон получил название благодаря своему рисунку, который напоминает рыболовную сеть, наброшенную на змеиную кожу.

Источник фото: http://ianimal.ru

Это главный претендент на звание самой большой змеи современности – по официальным данным рекордная длина составляет 12 м 20 см. В среднем же длина сетчатого питона редко превышает 8-9 м. Главная причина его внушительных размеров – благоприятные для роста условия – температура, влажность, густая зелень деревьев, огромное количество разнообразной пищи: птицы, млекопитающие, яйца, рыба и даже крокодилы.

Источник фото: http://ianimal.ru

Основное место обитания сетчатых питонов – это Юго-Восточная Азия: Южная Бирма, Таиланд, Вьетнам, Лаос, Камбоджа, острова Индонезии и Малые Зондские острова.

Источник фото: http://ianimal.ru

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

Источник фото: http://ianimal.ru

Источник фото: http://ianimal.ru

Источник фото: http://ianimal.ru

Питоны нередкие гости в поселениях местных жителей, ведь тут много пищи, за которой почти не нужно охотиться – домашний скот, грызуны.

Источник фото: http://ianimal.ru

Человека сетчатые питоны не боятся, однако и нападать не спешат – известны только два случая людоедства, когда погибли 13-тилетний мальчик и взрослый мужчина – проводник экспедиции.

Гигантская анаконда

Впервые про гигантскую анаконду, известную также как водяной удав, рассказал в своей книге «Хроники Перу» Педро де Сьеса де Леон в 1553 году.

Анаконда – серьезный конкурент сетчатому питону, длина самого большого представителя этого подсемейства составляет 11,43 м. Однако даже при меньшей длине анаконда значительно превосходит своего соперника по весу.

Источник фото: http://ianimal.ru

Принципиальных различий между анакондой и сетчатым питоном практически не существует.

Большую часть своей жизни «водяной удав» проводит, естественно, в воде, выползая лишь изредка на сушу, чтобы погреться на солнышке. Обитает в низинах рек Амазонки и Ориноко, в основном в стоячей воде, старицах и озерах. Если вдруг ее водоем пересыхает, то она либо спускается вниз по течению в поисках нового пристанища, либо закапывается глубоко в ил и впадает в глубокий сон, пока вода не вернется с началом сезона дождей. Ее часто можно встретить на территории Венесуэлы, Бразилии, Колумбии, Эквадора, северной Боливии, северо-восточного Перу и даже на острове Тринидад.

Источник фото: http://upload.wikimedia.org

Вопреки легендам, анаконды не ядовиты, змея душит свою добычу и затягивает ее под воду. У взрослой особи практически нет врагов, известен даже случай, когда анаконда полакомилась молодым 3-хметровым питоном, а вот молодые змейки могут попасть на зуб крокодилу или другому хищнику.

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

Тёмный тигровый (бирманский ) питон

Темный тигровый питон – третья по величине змея на планете, самый длинный представитель был более 9 м в длину и весил почти 100 кг.

Источник фото: http://globuslife.ru

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

Обитают питоны в тропических лесах, в болотах, речных долинах Мьянмы, Восточной Индии, Непала, Камбоджи, южного Китая, а также на островах Хайнань, Ява, Сулавеси и некоторых островах Индонезии. Как и все другие крупные змеи, бирманские питоны - хищники, однако они одни из немногих, кто может себе позволить охотиться на ягуаров и шакалов, которые могут оказать серьезное сопротивление даже анаконде.

Источник фото: http://animal.discovery.com

В ХХ столетии темные тигровые питоны были очень популярны в США в качестве домашнего питомца, однако питомцы вырастали, и мало кто из хозяев мог у себя оставить 8-метровую змею. Их отпускали на волю за пределами населенных пунктов, и через несколько лет бирманские питоны стали частью фауны национального парка Эверглейдс в штате Флорида, где таких домашних животных оказалось больше всего. Сегодня питоны ведут смертельную войну за выживание с живущими в парке аллигаторами, однако страдают в первую очередь от этого травоядные животные, на которых охотятся оба заклятых врага. Таким образом, из-за человеческой недальновидности некоторые животные, живущие в парке, оказались на грани вымирания.

Источник фото: http://upload.wikimedia.org

Змеи и люди

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

Источник фото: http://ianimal.ru

Несмотря на свои устрашающие размеры и силу, и анаконда, и питоны чаще всего сами становятся добычей человека – в местах их обитания змеиное мясо считается у местных племен чуть ли не повседневным блюдом. Островитяне искренне верят, что съев мясо этой огромной змеи, они получают не только частицу ее силы, но и немного древней мудрости, а главное - защиту от ее сородичей. Однако если туземцы убивают змей исключительно для еды, то «цивилизованные» змееловы занимаются этим, в первую очередь, ради змеиных шкур, которые широко используются в галантерее. Сегодня во многих странах уже введены ограничения на количество вывозимых змеиных шкур.

Забавное видео

2-х летний малыш любит бросать. Смотрите, что получилось, когда родители купили ему баскетбольное кольцо!

Оказывается, кошка - не самый лучший охотник за домашними грызунами. Кормить ее нужно каждый день, да и шерсти с нее много. То ли дело темный тигровый питон (лат. Python bivittatus ) ! Не шумит, не сорит и сам себя кормит. А если кушать нечего - не беда! Поголодает недельку-другую и дальше охотится.

flickr/patmanzzz-against SOPA/PIPA

Во всяком случае, так считают жители Юго-Восточной Азии, которые часто держат этих змей в качестве домашних животных. Характер у темных тигровых питонов относительно спокойный, поэтому больших хлопот они не доставляют. Хотя взрослые особи могут напасть и на человека, но это, скорее, исключение из правил. К тому же для особо крупных экземпляров есть другое применение: из их кожи делают одежду и обувь, а мясо употребляют в пищу. Со всех сторон хорош питон!

Встречается он в восточной части Индии, Мьянме, Непале, Таиланде, Камбодже, Вьетнаме, Малайзии и на юге Китая. На Борнео и Суматре его нет, зато есть на Сулавеси, Яве и некоторых других небольших островах Индонезии.

В свое время в США было популярно содержание питонов в качестве домашних любимцев. Однако, когда «любимец» достигал крупных размеров, его отпускали на волю. Так темный тигровый питон прижился в национальном парке Эверглейдс (штат Флорида, США), где стал конкурировать за звание доминирующего хищника с местными аллигаторами и уничтожать редкие виды животных и птиц.

Питоны предпочитают влажные тропические леса, скалистые предгорья, болота, речные долины и джунгли с открытыми полянами. Они любят воду, отлично ныряют и плавают, поэтому всегда селятся рядом с постоянными водоемами. Молодые змеи с удовольствием лазают по деревьям, однако с возрастом они избавляются от этой привычки.

Питаются питоны различными грызунами (в т. ч. дикобразами), циветтами, водоплавающими и куриными птицами, варанами, голубями. Иногда нападают на домашних животных. Особо крупные экземпляры время от времени лакомятся небольшими оленями, свиньями, козами, леопардами и шакалами. Нападают на добычу из засады. Хватают зубами и душат кольцами своего тела.

Длина тела темного тигрового питона может превышать восемь метров, однако гораздо чаще встречаются 5-метровые змеи с весом около 70 кг. Самый большой питон имел длину тела 9,15 м, а самый тяжелый весил 183 кг при длине тела 8,2 м. Любопытно, что звали тяжеловеса «Малышка».

В холодное время года питоны могут впадать в своеобразную «спячку»: они забиваются в пещеры, норы или пустые стволы деревьев и подолгу голодают, дожидаясь тепла. В этот период их репродуктивные органы активно готовятся сезону размножения, который начинается в начале весны.

От момента спаривания до откладки яиц проходит от 60 до 155 дней. В кладке обычно 12-36 яиц - их количество зависит от состояния здоровья и возможностей самки. Будущая мамаша обвивает кладку и согревает ее за счет мышечных сокращений. Молодые змейки выходят из яиц на 55-85 день. Интересно, что очень часто вполне сформировавшиеся детеныши не спешат покидать уютное яйцо и сидят внутри еще несколько дней. Кушать они начинают только после первой линьки.

Продолжительность жизни темных тигровых питонов в неволе составляет 25 лет. Так что подумайте, прежде чем заводить себе такого своеобразного «крысолова».