Pull to refresh
40
Karma
0
Rating
Tishka17 @Tishka17

Пользователь

  • Followers 49
  • Following 6

Новинки аннотаций типов в Python 3.8 (Protocol, Final, TypedDict, Literal)

Python *

Сегодня ночью вышел Python 3.8 и аннотации типов получили новые возможности:


  • Протоколы
  • Типизированные словари
  • Final-спецификатор
  • Соответствие фиксированному значению

Если вы ещё не знакомы с аннотациями типов, рекомендую обратить внимание на мои предыдущие статьи (начало, продолжение)
И пока все переживают о моржах, я хочу кратко рассказать о новинках в модуле typing

Читать дальше →
Total votes 38: ↑38 and ↓0 +38
Views 22K
Comments 34

Введение в аннотации типов Python. Продолжение

Lamoda corporate blog Python *


Автор иллюстрации — Magdalena Tomczyk


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

Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Views 38K
Comments 33

Введение в аннотации типов Python

Lamoda corporate blog Python *

Введение



Автор иллюстрации — Magdalena Tomczyk


Вторая часть


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


Сохраняя идею динамической утиной типизации в современных версиях Python (3.6+) поддерживает аннотации типов переменных, полей класса, аргументов и возвращаемых значений функций:



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


Меня зовут Тихонов Андрей и я занимаюсь backend-разработкой в Lamoda.


В этой статье я хочу объяснить основы использования аннотаций типов и рассмотреть типичные примеры, реализуемые аннотациями из пакета typing.

Читать дальше →
Total votes 33: ↑32 and ↓1 +31
Views 115K
Comments 48

Введение в Data classes

Python *

Одна из новых возможностей, появившихся в Python 3.7 — классы данных (Data classes). Они призваны автоматизировать генерацию кода классов, которые используются для хранения данных. Не смотря на то, что они используют другие механизмы работы, их можно сравнить с "изменяемыми именованными кортежами со значениями по умолчанию".



Введение


Все приведенные примеры требуют для своей работы Python 3.7 или выше

Большинству python-разработчикам приходится регулярно писать такие классы:


class RegularBook:
    def __init__(self, title, author):
        self.title = title
        self.author = author

Уже на этом примере видна избыточность. Идентификаторы title и author используются несколько раз. Реальный класс же будет ещё содержать переопределенные методы __eq__ и __repr__.


Модуль dataclasses содержит декоратор @dataclass. С его использованием аналогичный код будет выглядеть так:


from dataclasses import dataclass

@dataclass
class Book:
    title: str
    author: str
Читать дальше →
Total votes 48: ↑46 and ↓2 +44
Views 73K
Comments 19

AppCompat v21 — Material Design для пре-Lollipop устройств

Development for Android *
Translation
image
17 октября был опубликован Android 5.0 SDK, который принес новые виджеты и материальный дизайн. Мы расширили библиотеки поддержки, чтобы вы могли использовать ваши последние разработки и на предыдущих версиях Android. Это изменения включают в себ крупное обновление для AppCompat, а так же библиотеки RecyclerView, CardView и Palette.

В этом посте мы взглянем, что нового появилось в AppCompat и как это использовать для поддержки материального дизайна в ваших приложениях.
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Views 90K
Comments 22

Ошибки Android интерфейса Twitter

Development for Android *
В прошлом посте, я анализировал Evernote на предмет недочетов в следовании гайдлайнам. Сегодня хочу провести анализ интерфейса Twitter.

Action Bar


Поиск

В руководстве разработчика по работе с Action Bar Google вводит такое понятие как «Представление действия (Action View)». Виджет поиска — одно из таких представлений. По-умолчанию оно свернуто в иконку, но при разворачивании должна появляться иконка «вверх», нажатие на которую позволяет свернуть действие обратно (см. раздел "Поддержка сворачиваемый представлений действий"). В Twitter при открытии поиска отсутствует иконка «вверх»


Читать дальше →
Total votes 58: ↑47 and ↓11 +36
Views 14K
Comments 32

Ошибки Android интерфейса Evernote

Development for Android *
Sandbox
Приложение Evernote отличается высоким качеством и удобством использования, однако и в нем есть свои ошибки. Многие из них довольно типичны и встречаются во многих популярных программах. Данный пост не претендует на непреложную истину, однако я постарался аргументирвоать свои замечания выдержками из гайдлайнов Google.

Боковое меню


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

Индикатор бокового меню

На странице с описанием Navigation Drawer Google дает четкие рекомендации по иконке индикатора наличия бокового меню:
imageДля облегчения доступа к боковому меню, все экраны, которые соответствуют записям в этом меню, должны содержать индикатор бокового меню рядом с иконкой приложения в Action Bar. Нажатие на иконку приложения заставляет меню выехать с левого края экрана.

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


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

Читать дальше →
Total votes 49: ↑40 and ↓9 +31
Views 18K
Comments 15

Qt Mobility 1.1.1, QtCreator 2.1.0, Qt 4.7.2

Qt *
Вышло очередное обновление инстурментария Qt за номером 4.7.2. Кроме исправления ошибок, оно является официальным релизом Qt Quick.

Одновременно вышло обновление для QtCreator (версия 2.1.0) с расширенной поддержкой Qt Quick и разработки для мобильных приложений.

QtMobility 1.1.1 включает множество исправлений ошибок и улучшенные привязки для QML и производительность, в особенности для Symbian.
Qt Mobility 1.1.1 так же входит в состав Qt SDK 1.1 Beta.
Total votes 35: ↑32 and ↓3 +29
Views 1.2K
Comments 14

Устанавливаем RockBox на iPod Video

Open source *
Если вы слышали слово RockBox, эта заметка скорее всего не скажет вам ничего нового. Даже не трудитесь читать её.

Попался мне в руки старенький ipod video на 60 гигов. Амарок, конечно, его подхватил и дал возможность читать/писать в его базу. Но не у всех же стоит такой комбайн, а бывает что зайдешь в гости к знакомому музыканту взять новые его записи послушать. Да и такие форматы как Ogg Vorbis и FLAC плеер не играет. В результате было решено поставить стороннюю прошивку. Речь идет о RockBox.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 22K
Comments 12

Во vkontakte будет RSS?

Social networks and communities
Недавно при просмотре фотографий на вконтакте.ру знакомый обратил моё внимание на замечательную иконку rss в адресной строке моего браузера. Мы были несколько удивлены, и решили попробовать её в действии.

Опера нормально ленту показывать отказалась. Выдала нам пару надписей <no title> с неработающими ссылками и всё. Akregator, тоже не смог загрузить ни одного настоящего сообщения. Google reader тоже ничего не понял.

Ну, делать нечего, откроем исходный код какой нибудь ленты.
Читать дальше →
Total votes 18: ↑7 and ↓11 -4
Views 3.1K
Comments 14

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity