Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

windows-1252. Создание пакетов библиотек». Перенос кода на Python 3 с помощью 2to3». Особые названия методов. Основы. Куда пойти




windows-1252

Если UniversalDetector определяет символы со старшим байтом в тексте, но ни один из других многобайтныйх или однобайтный исследователей не вернул положительный результат, создается Latin1Prober(определенный в latin1prober. py) чтобы попытаться определить английский текст в кодировке windows-1252. Это будет изначально не надежным анализом, потому что английские символы закодированы таким же способом как и во многих различных кодировках. Единственный способ определить windows-1252 это обратить внимание на часто используемые символы как умные кавычки, вьющиеся апострофы, символы копирайта и т. д. Latin1Prober автоматически уменьшает свой уровень уверенности чтобы другие, более достоверные, исследователи могли выиграть если возможно.

Создание пакетов библиотек»

Перенос кода на Python 3 с помощью 2to3»

Особые названия методов

 

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

Основы

Если вы читали введение в классы вы уже видели самые общие специальные методы: метод __init__(). Многообразие классов которые я написал требуют некоторой инициализации. Также есть некоторые другие специальные методы которые особенно полезны для отлаживания ваших пользовательских классов.

  1. Метод __init__() вызывается после того как экземпляр создан. Если вы хотите контролировать процесс создания используйте метод __new__().
  2. По соглашению метод __repr__() должен возвращать строку которая является действительным питоновским выражением.
  3. Метод __str__() также вызывается когда используется print(x).
  4. Новое в Python3, был введен новый тип bytes.
  5. По соглашению, format_spec должен удовлетворять Format Specification Mini-Language decimal. py в стандартной библиотеке Python в которой имееться свой метод __format__().

Классы, которые ведут себя как итераторы.

В главе про итераторы вы видели как построить итератор с нуля используя методы __iter__() и __next__().

  1. Метод __iter__() вызываеться когда вы создаете новый итератор. Это хорошее место для инициализации итератора начальными значениями.
  2. Метод __next__() вызываеться когда вы получаете следующее значение из итератора.
  3. Метод __reversed__() является. Он получает существующую последовательность и возвращает итератор который производит элементы в последовательности в обратном порядке, от последнего к первому.

Как вы видели в главе Итераторы, цикл for может быть применен к итератору. В этом цикле:

for x in seq:
print(x)

Python 3 будет вызывать seq. __iter__() для создания итератора, затем вызовет метод __next__() для этого итератора для получения каждого значения х.

Когда метод __next__()

Куда пойти

 

Это стоит прочитать

Существует некоторое количество тем недостаточно раскрытых в этой книге, однако для их раскрытия существуют открытые ресурсы.

Декораторы:

  • Декораторы Функций от Ariel Ortiz
  • Подробнее о Декораторах Функций от Ariel Ortiz
  • Очаровательный Python: Магия Декораторов это просто от David Mertz
  • Определение Функций в официальной документации Python

Свойства:

  • The Python propertybuiltin от Adam Gomaa
  • Getters/Setters/Fuxors от Ryan Tomayko
  • property()функция в официальной документации Python

Дескрипторы:

  • How-To руководство по Дескрипторам от Raymond Hettinger
  • Очаровательный Python: Элегантность и недостатки Python, Часть 2 от David Mertz
  • Дескрипторы Python от Mark Summerfield
  • Вызов Дескрипторов в официальной документации Python

Мультипотоковость & многопроцессорность:

  • threadingмодуль
  • threading Управление конкурирующими потоками
  • multiprocessingмодуль
  • multiprocessing Управление процессами как потоками
  • Потоки Python и Global Interpreter Lock от Jesse Noller
  • Внутри Python GIL (видео) от David Beazley

Метаклассы:

  • Программирование метаклассов в Python от David Mertz and Michele Simionato
  • Программирование метаклассов в Python, Часть 2 от David Mertz and Michele Simionato
  • Программирование метаклассов в Python, Часть 3 от David Mertz and Michele Simionato

И в дополнение Doug Hellman™ Python Модуль недели, это фантастическое руководство к большинству модулей для стандартной библиотки Python.

Где искать совместимый с Python 3 код.

Так как Python 3 относительно новый, существует довольно мало совместимых библиотек. Вот некоторые из мест, где Вы могли бы их отыскать.

  • Python Package Index: список пакетов Python 3
  • Python Cookbook: список рецептов для Python 3
  • Google Project Hosting: список проектов Python3
  • SourceForge: список проектов базирующихся на Python 3
  • GitHub: список проектов Python 3 (а также, список проектов Python 3)
  • BitBucket: список проектов python3 (а также Python 3)
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...