Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

型チェックを使ってみよう #40

Closed
sotetsuk opened this issue Dec 15, 2020 · 0 comments · Fixed by #41
Closed

型チェックを使ってみよう #40

sotetsuk opened this issue Dec 15, 2020 · 0 comments · Fixed by #41

Comments

@sotetsuk
Copy link
Owner

sotetsuk commented Dec 15, 2020

これまで、特に説明せずにPythonの型ヒント機能を使ってきましたが、より実践的な型チェックをしてみましょう。

型ヒントの例

Screen Shot 2020-12-15 at 21 49 52

型ヒントの基本的な書き方

Pythonは動的型付け言語ですが、型アノテーションを付け加えることで、統合開発環境によるリッチ補完や、バグの早期発見が可能になります。

主に、関数の引数と返り値にアノテーションを付けて検証すると良いでしょう。

def square(x: int) -> int:
    return x * x

x: int が引数がint型であること、-> int が返り値がint型であることを示しています。

型チェックの実行の仕方

今回作成した、fizzbuzz ライブラリの型が正しいか確認してみましょう。
型チェックは mypy パッケージを利用します。

Screen Shot 2020-12-15 at 21 58 33

現状、型チェックは問題ないことが分かります。
では、あえて返り値の型を間違えてみるとどうなるでしょうか?
返り値の型を間違えると、次のように、PyCharmが警告を出してくれます。

Screen Shot 2020-12-15 at 21 59 50

また、mypyの実行結果もエラーを返します。

Screen Shot 2020-12-15 at 22 02 26

型チェックをCIへ組み込む

ローカルで、型チェックが通ったら、これをテストと同じように、GitHub上でCIとして自動で実行できるようにしましょう。
#41 のPRを参考に、機能追加をしてみて下さい。

目次

  1. プロジェクトを初期化しよう
  2. 仕様を決めて、ユニットテストを追加してみよう
  3. ユニットテストが通るように本体を実装してみよう
  4. (Optional) doctestを導入してみよう
  5. 新しい機能を追加する前に、CIを導入してみよう
  6. 新しい機能を追加してみよう
  7. ライブラリとして使えるようにしてみよう
  8. CLIツールとして使えるようにしてみよう
  9. (Optional) 便利な外部ライブラリをインストールして使ってみよう (Pytest編)
  10. (Optional) 便利な外部ライブラリをインストールして使ってみよう (Click編)
  11. [現在] 型チェックを使ってみよう
  12. [つぎ] しっかりとしたREADMEを書こう
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant