Talk Proposal Submission

If you are interested in attending this talk at PyCon JP 2017, please use the social media share buttons below. We will consider the popularity of the proposals when making our selection.

talk

Pythonを支える技術: プロトコル編(ja)

Speakers

Takayuki Shimizukawa

Audience level:

Intermediate

Category:

Core Python (Language, Stdlib)

Description

Pythonには文字列やリストなど、長さをもつオブジェクトがあります。長さを手に入れるには、文字列なら、name.length ではなく len(name) のようにlen関数を使います。len関数は引数に渡されたオブジェクトと通信して、オブジェクトの長さを手に入れています。このときの通信の決まりをプロトコルと呼びます。if文がオブジェクトの真偽値を手に入れるのも、for文がオブジェクトからイテレートするオブジェクトを手に入れるのも、プロトコルで決まっています。 この発表では、PEP-544で定義されているPythonのプロトコルについて説明し、自分で実装するときにどう実装すればlen()やif文やfor文に適合したオブジェクトを表現できるのか説明します。

Objectives

Pythonのオブジェクトの動作がどうやって決まっているのかを把握してもらうために、具体的な実装と動作を紹介します。その背景には、Pythonのプロトコルという概念があります。本トークではPEP-544で定義されているプロトコルの概念を説明し、その応用例を紹介します。

Abstract

- Pythonデータ型再入門 - `len()`, `if`, `for` に適合したオブジェクトの実装例 - PEP-544 プロトコル: データ型が長さを返す、条件式に使える、繰り返し可能、のような動作を満たす条件 - collection.abc を使ったプロトコル実装の強制 - TypeHints によるプロトコルチェック - まとめ
  • このエントリーをはてなブックマークに追加
CONTACT