【本日のミッション】
Day28では「組み込み関数(any, all)」を学びました。
今日は isinstance() と issubclass() を使って、
「オブジェクトがどのクラスに属しているか」を判定する方法を学びましょう。
isinstance の基本
出力結果
True False
isinstance() は「オブジェクトが指定したクラスのインスタンスかどうか」を判定します。
上記の例では、x は int 型なので、最初の結果は True、2つ目は False になります。
issubclass の基本
出力結果
True False
issubclass() は「クラスが他のクラスを継承しているかどうか」を判定します。
Dog は Animal を継承しているため、最初の結果は True、2つ目は False になります。
練習問題
次のコードを実行するとどうなるでしょうか?
選択肢
A)
True True True False
B)
True False True True
C)
False True False True
D)
エラーになる
解答
A)
True
True
True
False
解説
B は A を継承しているため、obj は A のインスタンスとしても認識されます。
→ True
obj は B クラスから作成されたため → True
B は A のサブクラス → True
A は B のスーパークラスなので → False
👉 出力結果は
👉 正解は A)
True
True
True
False
✅ポイント
isinstance(obj, クラス)→ オブジェクトがそのクラスのインスタンスかを判定issubclass(クラス1, クラス2)→ クラス1がクラス2を継承しているかを判定継承関係がある場合、親クラスも「インスタンスとして認識」される
次回予告
Day30では 組み込み関数(callable, eval) を学びます。
関数やオブジェクトを動的に呼び出す便利な仕組みを紹介します!
参考
Python 3 エンジニア認定基礎試験 – Odyssey CBT
Python3 エンジニア認定基礎試験 出題範囲と学習プラン
Python3 エンジニア認定基礎試験 練習問題 Day1:変数の基本
Python3 エンジニア認定基礎試験 練習問題 Day2:変数の型(int型とstr型)
Python3 エンジニア認定基礎試験 練習問題 Day3:算術演算子と代入演算子
Python3 エンジニア認定基礎試験 練習問題 Day4:文字列の操作
Python3 エンジニア認定基礎試験 練習問題 Day5:比較演算子と論理演算子
Python3 エンジニア認定基礎試験 練習問題 Day6:if文(条件分岐)
Python3 エンジニア認定基礎試験 練習問題 Day7:ループ処理(for文・while文)
Python3 エンジニア認定基礎試験 練習問題 Day8:break文とcontinue文
Python3 エンジニア認定基礎試験 練習問題 Day9:リスト(list)の基本
Python3 エンジニア認定基礎試験 練習問題 Day10:リストの操作(append,remove,len など)
Python3 エンジニア認定基礎試験 練習問題 Day11:リストのスライス(部分取り出し)
Python3 エンジニア認定基礎試験 練習問題 Day12:タプル(tuple)の基本
Python3 エンジニア認定基礎試験 練習問題 Day13:辞書(dict)の基本
Python3 エンジニア認定基礎試験 練習問題 Day14:集合(set)の基本
Python3 エンジニア認定基礎試験 練習問題 Day15:関数の定義と呼び出し
Python3 エンジニア認定基礎試験 練習問題 Day16:関数のデフォルト引数とキーワード引数
Python3 エンジニア認定基礎試験 練習問題 Day17:可変長引数(*args, **kwargs)
Python3 エンジニア認定基礎試験 練習問題 Day18:関数のスコープ(ローカル変数とグローバル変数)
Python3 エンジニア認定基礎試験 練習問題 Day19:ネスト関数(関数の中の関数)
Python3 エンジニア認定基礎試験 練習問題 Day20:ラムダ式(無名関数)
Python3 エンジニア認定基礎試験 練習問題 Day21:組み込み関数(len, type, range など)
Python3 エンジニア認定基礎試験 練習問題 Day22:組み込み関数(sum,max,min,sorted)
Python3 エンジニア認定基礎試験 練習問題 Day23:文字列と組み込み関数(len,str,int,float)
Python3 エンジニア認定基礎試験 練習問題 Day24:組み込み関数(abs, round, pow)
Python3 エンジニア認定基礎試験 練習問題 Day25:組み込み関数(sorted の応用と key 引数)
Python3 エンジニア認定基礎試験 練習問題 Day26:組み込み関数(enumerate, zip)
Python3 エンジニア認定基礎試験 練習問題 Day27:組み込み関数(map, filter, reduce)
Python3 エンジニア認定基礎試験 練習問題 Day28:組み込み関数(any, all)


