2016/10/14 13:00 python- [前回] オブジェクト指向 Class 概念と継承 (Python の) オブジェクトは、Class のインスタンスとして作られる 全てのオブジェクトは何らかのクラスから作られている そのオブジェクトは、そのクラスの要素と見做せる <=> クラスはオブジェクトの集合と見做せる Class が「集合」と見做せるなら 「集合間」の「包含関係」を考える事ができる Class A が Class B に含まれる状況を表すのが 「継承」という概念 python では、新しい Class を作る時に class クラス名A: と記述するが、「クラス A」が、「クラス B」の部分集合である事を示すのに、 class クラス名A(クラス名B): と記述する。(これを「継承」と呼ぶ) この時、 クラス B を クラス A のスーパー(上位)クラス クラス A を クラス B の下位クラスとか導出クラスと呼ぶ # 実際には、クラスの継承は、必ずしも包含関係を保証しないが、まあ、そうであるようにする方が、「行儀が良い」方法 # cf. オーバライド/多重継承/etc.. !! それなら、集合の和、積もありそうだが.. それはしない !!! 集合を記述する時に、S = { x | P(x) } という表現がある !!! 述語 P は S の要素の性質 ( x が S に入る条件 ) !!! { x | P(X) and Q(x) } は S の部分集合 !!! S は { x | P(X) or Q(x) } の部分集合 !!! 「継承」の時には、B に、条件 Q を追加して A を作る形 !!!! python の多重継承 !!!! class クラス名A[R](クラス名B[P],クラス名C[Q],...): !!!! A = { x | R(x)&P(x)&Q(x) } !!!! R(x) = True の時は、A は B と C の積集合 !!!! # 数学モデルでは { x, x } = { x } !!!! # 計算機のモデルでは { x, x } != { x } の事が多いので、一致しなくってしまう(行儀が悪い)事になる 「継承」を利用する 「実装」を「詳細化」するのと同じ手順 # 最終的に Class A のインスタンス a を作りたい # それをするのに、まず、Class A の機能の一部を実装した、 # Class Z と、そのインスタンス z を作り、テストをする # これがうまくいったら、更に Class Y に Z では # 実装されていない A の機能を追加し、その # インスタンス y を作り、テストをする # 以下同文... # 最終的に Class A が作られる == python で記述するアプリケーション -> ライブリの利用方法 # ライブラリは、Class として実装(提供)されている # -> Class のインスタンスを作って操作する事になる 参考資料 Python for Informatics: Exploring Information: Exploring Information (English Edition) 12 章 == 2016/10/14 15:00 α 今回の課題 a. 前回のネットワークを作る b. Loop (冗長経路) が存在するので、一部のネットワークに障害を起す b-1) 適当なケーブルを拔く b-2) 適当な Router の電源を切ってみるという実験をしてみる 「実験」なので、「予想」をし、「観測結果」と比較し、「考察」する # 「観測対象」 # 本当は、これも考えて欲しいが.. # A) 個々の Router の ip show route の出力 # B) 相互の ping の結果 # 「実験内容」 # どの線を切るのが適切か ? # どの Router の電源を切るのが適切か ? # 今回の課題で、一句切 <<今後>> 1. もう、個別のゼミが始まったので、まあ、「終り」する 個別に要望があれば、続きをするのは吝かではないが.. 2. 3 年生が決まりました この内容を m0 が中心となって、3 年生にやって欲しい # 北野君が修了する前に、なんとかして欲しい