SlideShare a Scribd company logo
Pythonでも型をつけたい
だけの人生だった
あっきー
はんなりPythonの会 #20 発表会
自己紹介
所属
京都のIT会社勤務(社会人2年目)
取り組んでいること
AWSを使ったバックエンドの構築
Vue.jsなどを使ったフロントエンド開発
SORACOMのサービスを利用したIoT開発
Openblocksと戯れる日々…
アンケート
静的型付き言語(C言語、C++、Javaなど)
を触ったことがある方ー?
Pythonでも型をつけたいだけの人生だった
😫 😫
どうすれば回避できるのか
😫 😫
Pythonでも型付きで宣言したい?
大丈夫、安心してください
そう、Type Hintsならね
Pythonでも型付きで宣言できるよ
アジェンダ
静的型付きのメリット
Type Hintsとは
Mypyって?
Type Hintsの具体的な例
静的型付きのメリット
実行する前にエラーになりそうな箇所を見つけることができる
コードの可読性が上がる
バグが減る(かも)
静的型付きのメリット
実行する前にエラーになりそうな箇所を見つけることができる
⇒変数の型を縛ることで、他の型を代入した場合に、
エディタ上で強調表示させる
コードの可読性が上がる
バグが減る(かも)
間違った型を代入してるよ(str型を代入しようとしているけど、
変数の型はint型だよ)
静的型付きのメリット
実行する前にエラーになりそうな箇所を見つけることができる
コードの可読性が上がる
⇒どのような変数かがひと目見て理解できる
バグが減る(かも)
Studentクラスのリスト型の変数ということが一目瞭然
静的型付きのメリット
実行する前にエラーになりそうな箇所を見つけることができる
コードの可読性が上がる
バグが減る(かも)
⇒型を意識してプログラミングを行うことで、プログラムの深い理解を
サポートする
Type Hintsとは
Pythonのソースコード上に、型の情報を加えるもの
型情報に関係のあるPEP一覧
PEP 3107: Function Annotations
PEP 484: Type Hints
PEP 526 : Syntax for Variable Annotations
PEP 544: Protocols: Structural subtyping(static duck typing)
PEP 563: Postponed Evaluation of Annotations
定義の標準化、typingの提供など
Mypyって?
Type Hintsはあくまで型情報の付与機能しか提供していない
そもそも、型情報はコメントと同じ扱い
なので、型情報を解析して、エラーかどうかを判断するための
ツールが必要となる
Mypyがなければ、Pythonの型情報は無用の産物と化す、、、
Type Hintsの具体的な例(基本変数)
間違った型を代入してるよ(int型を代入しようとしているけど、
変数の型はbool型だよ)
Type Hintsの具体的な例(辞書)
Movieの型にはcomment属性は無いよー
Type Hintsの具体的な例(関数)
間違った型を代入してるよ(int型を代入しようとしているけど、変数の型はbool型だよ)
第一引数のint型にstr型を入れようとしてるけど、ダメだよー
第二引数のint型にsfloat型を入れようとしてるけど、ダメだよー
Type Hintsの具体的な例(定数)
定数RATEに再代入はできないよー
Type Hintsの
具体的な例
(クラス)
間違った型を
代入してるよ
(Student型を代入しよ
うとしているけど、
変数の型はint型だよ)
Type Hintsの具体的な例(OR)
間違った型を代入してるよ(float型を代入しようとしているけど、
変数の型はint型かstr型だよ)
Type Hintsの具体的な例(キャスト)
ややこしいのでほぼ使いません。。。
皆さんも良い型付きライフをお過ごし下さい
ご清聴ありがとうございました

More Related Content

ODP
Harajuku.rb ( !rubykaigi in rubykaigi2011 )
ODP
Python-Tokai at Nagoya Ruby Meeting 01
PDF
PHPUnitでリファクタリング
PDF
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
PPTX
Python×ドローンについて過去のPyConJP登壇から今までの進化。
KEY
OCamlの多相Variant紹介 #fpstudy
PDF
PyCon JP 2016 ビギナーセッション
PPTX
OmegaTでドキュメント翻訳
Harajuku.rb ( !rubykaigi in rubykaigi2011 )
Python-Tokai at Nagoya Ruby Meeting 01
PHPUnitでリファクタリング
過去2回の登壇内容からのPython×ドローンの進化アップデート内容と今後について展望
Python×ドローンについて過去のPyConJP登壇から今までの進化。
OCamlの多相Variant紹介 #fpstudy
PyCon JP 2016 ビギナーセッション
OmegaTでドキュメント翻訳

What's hot (20)

PDF
Code igniterでテスト駆動開発 資料作成中
PDF
Php勉強会資料20090629
PDF
Code igniter + ci phpunit-test
PDF
Potato03 KotlinでAndroidアプリ開発(後編)
PDF
CodeIgniter 最新情報 2011 (増補版)
PDF
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
PPTX
Lina katayose pyladies3周年LT
PDF
Nimで競技プログラミングを始めた話(1ヶ月)
PDF
CodeIgniter 最新情報 2010
PPTX
React componentのコンストラクタを追いかけて
PDF
Ninja Testing at Toteka03
PDF
PHPカンファレンス関西 2011
PDF
Kotlinの紹介
PDF
Blocklyduinoをできるまで
PDF
Rubyistのためのkotlin紹介
PDF
2011 PHPカンファレンス関西 懇親会LT
PPTX
PHPCON fukuoka 2015 CodeIgniter update
PDF
ROSを用いた天吊型スカラロボットの共同製作
PDF
20111206 GLT vol.40
PDF
エキスパートPythonプログラミング改訂3版の読みどころ
Code igniterでテスト駆動開発 資料作成中
Php勉強会資料20090629
Code igniter + ci phpunit-test
Potato03 KotlinでAndroidアプリ開発(後編)
CodeIgniter 最新情報 2011 (増補版)
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Lina katayose pyladies3周年LT
Nimで競技プログラミングを始めた話(1ヶ月)
CodeIgniter 最新情報 2010
React componentのコンストラクタを追いかけて
Ninja Testing at Toteka03
PHPカンファレンス関西 2011
Kotlinの紹介
Blocklyduinoをできるまで
Rubyistのためのkotlin紹介
2011 PHPカンファレンス関西 懇親会LT
PHPCON fukuoka 2015 CodeIgniter update
ROSを用いた天吊型スカラロボットの共同製作
20111206 GLT vol.40
エキスパートPythonプログラミング改訂3版の読みどころ
Ad

Similar to Pythonでも型をつけたいだけの人生だった (13)

PDF
静的型付け言語Python
PDF
Python と型ヒント (Type Hints)
PDF
dataclassとtypehintを使ってますか?
PDF
PyLadies Tokyo 二周年記念パーティ LT
PPTX
Python と型アノテーション
PDF
TypeScript & 関数型講座 第1回 型の重要性
PDF
20170131 python3 6 PEP526
PDF
Pythonと型チェッカー
PDF
Scalaで型クラス入門
PDF
みんなのPython勉強会#62
PDF
mypy - 待望のPython3.9型ヒント対応
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
PDF
Python standard 2022 Spring
静的型付け言語Python
Python と型ヒント (Type Hints)
dataclassとtypehintを使ってますか?
PyLadies Tokyo 二周年記念パーティ LT
Python と型アノテーション
TypeScript & 関数型講座 第1回 型の重要性
20170131 python3 6 PEP526
Pythonと型チェッカー
Scalaで型クラス入門
みんなのPython勉強会#62
mypy - 待望のPython3.9型ヒント対応
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
Python standard 2022 Spring
Ad

More from hiroya akita (10)

PDF
KyotoLT_Online_27.pdf
PDF
はんなりPython #45
PDF
Python 3.10の新機能を 俯瞰してみる
PDF
KyotoLT(Online) 第26回
PDF
AppSync導入のすすめ
PDF
はんなりpython#32
PPTX
Hannari python#27
PPTX
変数の重要度ってどうやったらわかるん?
PPTX
みんなのはんなりPython勉強会
PPTX
Lt debian 20190526
KyotoLT_Online_27.pdf
はんなりPython #45
Python 3.10の新機能を 俯瞰してみる
KyotoLT(Online) 第26回
AppSync導入のすすめ
はんなりpython#32
Hannari python#27
変数の重要度ってどうやったらわかるん?
みんなのはんなりPython勉強会
Lt debian 20190526

Pythonでも型をつけたいだけの人生だった