未熟プログラマーの戯言

これからも戯言のままに

備忘録1:python での型判定。

卒業研究でいきなり『これからはpythonを使って書いて』って言われたので

はい、そうですか。と4年生からpythonを使いだしてはや半年。

 

大なり小なりいろんなことにつまずいてきました。

それらを時間があれば書こうと思いますが、

 

まずはこれ、型の判定。

例外処理やいろんなところで活躍するtypeさんですが、最初は使い方が全く分からず

返り値にstr型の方の名前が返ってきてると思い込んでいました。

例えば下のような

gistb165656e1032a2c36f8f

 

リファレンスにはこう書かれていました。

object の型を返します。返される値は型オブジェクト です。標準モジュール types は、組み込み名を持っていない全ての組み込み型の名前を定義しています。 引数が与えられない場合、新しい空のタプル () を返します 

 なるほど。型のオブジェクト。。

 

一応確認

gista3a5db5e09837ea3266b

 

type型かぁ。どうりで名前では判定してくれないんだ。。。

 

 

型の判定にはisinstance()を使うみたいです。

 引数 object が引数 classinfoインスタンスであるか、 (直接または間接的な) サブクラスのインスタンスの場合に真を返します。 また、classinfo が型オブジェクトであり、object がその 型のオブジェクトである場合にも真を返します。object が クラスインスタンスや与えられた型のオブジェクトでない場合、 この関数は常に偽を返します。classinfo をクラスオブジェクト でも型オブジェクトにもせず、クラスや型オブジェクトからなる タプルや、そういったタプルを再帰的に含むタプル (他のシーケンス型は 受理されません) でもかまいません。classinfo がクラス、型、 クラスや型からなるタプル、そういったタプルが再帰構造をとっている タプルのいじれでもない場合、例外 TypeError が送出 されます。 バージョン 2.2 で 変更 された仕様: 型情報をタプルにした形式のサポートが追加されました。

 なるほど。。?

とりあえずやってみる

gist9087fb8afe1210a4faa4

 

できた。

とりあえず型の判定はisinstance()でってことですね。

それにしても僕ブログ書くの下手だなぁ