kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

python

PEP 483を読む(続き4)

総称型の定義と利用 特別なビルディングブロックであるGenericを使ってクラスを総称型として宣言できます。class MyGeneric(Generic[X, Y, ...]): ...で型変数X等に関する総称型MyGenericを定義します。 このGeneric[X, Y, ...]っていうのは継承とは関係なく…

PEP 483を読む(続き3)

型変数 X = TypeVar('X')で一意の型変数を宣言できます。名前は変数名と一致しなくてはなりません。デフォルトでは、型変数は可能なあらゆる型をとることができます。 uniqueを一意と訳したけれども何がuniqueなんだろう 同じ名前で2回は宣言できない、くら…

PEP 483を読む(続き2)

総称型(Generic types) 上で定義された基本的なビルディングブロックにより、ジェネリックな形で新しい型を構築することが可能となります。たとえば、Tupleはfloatを取って具体型Vector=Tuple[float, ...]になり、また、UserIDを取って別の具体型Registry=Tu…

PEP 483を読む(続き)

以下、英語のTypeを型と訳すか、タイプとカタカナにするか、それともTypeのままにしておくか悩ましい感じがしています型って書くほうが普通かもしれませんがタイプとしてみました

PEP 483を読む(続き)

漸進的型付け(Gradual Typing) 漸進的型付けとは、プログラムの一部だけをアノテートすることで動的型付けと静的型付け双方の望ましい側面を強化するものです。 つけるとよさそうなところだけ型を明示する

PEP 483を読む

型ヒントをもうちょっと勉強しておこうPEP 484よりもPEP 483の方が読む分には楽で面白く読めそうな気がするのでそっち読む

実験:関数オーバーロード(続き)

pythonは型ヒントを無視するのでこうなるしかないんですけど どうしてもオーバーロードするなら自分で型を判定する ていうかUnion型があるってことはもともとそういうものってことかな

実験:関数オーバーロード

せっかく型情報つけるんだから関数がオーバーロードできるといいなあ

カバレッジを計測する

テスト書いたらカバレッジも計測してみたい この間なにかでPythonではCoverageというツールで計測できるというのを見た pip installでインストールして $ pip install coverage ... Successfully installed coverage-4.5.2 coverage runでカバレッジを計測 $…

Pythonのクラスで謎の現象

こんなクラス作ってですね

寄り道:Type Hint (続き)

少し遊ぶ ヒントに合わない型を返してみるとか >>> def greeting(name: str) -> int: ... return 'Hello ' + name ... >>> あれ?

寄り道:Type Hint

ちょっと調べたほうがいいかもな ということで調べてたら型ヒントっていうのが出てきた 26.1. typing — 型ヒントのサポート — Python 3.6.5 ドキュメント Python3.5から使えるみたいだからAOJでも使える System info | Aizu Online Judge こういうもの