Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

193 views

Published on

2019年9月20日の発表資料です。

Published in: Software
  • Be the first to comment

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

  1. 1. Pythonでも型をつけたい だけの人生だった あっきー はんなりPythonの会 #20 発表会
  2. 2. 自己紹介 所属 京都のIT会社勤務(社会人2年目) 取り組んでいること AWSを使ったバックエンドの構築 Vue.jsなどを使ったフロントエンド開発 SORACOMのサービスを利用したIoT開発 Openblocksと戯れる日々…
  3. 3. アンケート 静的型付き言語(C言語、C++、Javaなど) を触ったことがある方ー?
  4. 4. 😫 😫 どうすれば回避できるのか 😫 😫
  5. 5. Pythonでも型付きで宣言したい? 大丈夫、安心してください そう、Type Hintsならね Pythonでも型付きで宣言できるよ
  6. 6. アジェンダ 静的型付きのメリット Type Hintsとは Mypyって? Type Hintsの具体的な例
  7. 7. 静的型付きのメリット 実行する前にエラーになりそうな箇所を見つけることができる コードの可読性が上がる バグが減る(かも)
  8. 8. 静的型付きのメリット 実行する前にエラーになりそうな箇所を見つけることができる ⇒変数の型を縛ることで、他の型を代入した場合に、 エディタ上で強調表示させる コードの可読性が上がる バグが減る(かも)
  9. 9. 間違った型を代入してるよ(str型を代入しようとしているけど、 変数の型はint型だよ)
  10. 10. 静的型付きのメリット 実行する前にエラーになりそうな箇所を見つけることができる コードの可読性が上がる ⇒どのような変数かがひと目見て理解できる バグが減る(かも)
  11. 11. Studentクラスのリスト型の変数ということが一目瞭然
  12. 12. 静的型付きのメリット 実行する前にエラーになりそうな箇所を見つけることができる コードの可読性が上がる バグが減る(かも) ⇒型を意識してプログラミングを行うことで、プログラムの深い理解を サポートする
  13. 13. 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の提供など
  14. 14. Mypyって? Type Hintsはあくまで型情報の付与機能しか提供していない そもそも、型情報はコメントと同じ扱い なので、型情報を解析して、エラーかどうかを判断するための ツールが必要となる Mypyがなければ、Pythonの型情報は無用の産物と化す、、、
  15. 15. Type Hintsの具体的な例(基本変数) 間違った型を代入してるよ(int型を代入しようとしているけど、 変数の型はbool型だよ)
  16. 16. Type Hintsの具体的な例(辞書) Movieの型にはcomment属性は無いよー
  17. 17. Type Hintsの具体的な例(関数) 間違った型を代入してるよ(int型を代入しようとしているけど、変数の型はbool型だよ) 第一引数のint型にstr型を入れようとしてるけど、ダメだよー 第二引数のint型にsfloat型を入れようとしてるけど、ダメだよー
  18. 18. Type Hintsの具体的な例(定数) 定数RATEに再代入はできないよー
  19. 19. Type Hintsの 具体的な例 (クラス) 間違った型を 代入してるよ (Student型を代入しよ うとしているけど、 変数の型はint型だよ)
  20. 20. Type Hintsの具体的な例(OR) 間違った型を代入してるよ(float型を代入しようとしているけど、 変数の型はint型かstr型だよ)
  21. 21. Type Hintsの具体的な例(キャスト) ややこしいのでほぼ使いません。。。
  22. 22. 皆さんも良い型付きライフをお過ごし下さい ご清聴ありがとうございました

×