po-9. Python プログラミング演習の総まとめ

>100 Views

December 21, 21

スライド概要

Python プログラミング演習
URL: https://www.kkaneko.jp/cc/po/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

po-9. Python プログラ ミング演習の総まとめ プログラミングの基礎を Python で学びたい人へ(全9回) URL: https://www.kkaneko.jp/cc/po/index.html 金子邦彦 1

2.

アウトライン 9-1 オブジェクト,メソッド,関数 9-2 クラス定義,コンストラクタ 9-3 クラス階層,継承 • 重要トピックスのまとめ 2

3.

9-1. オブジェクト,メソッド, 関数 3

4.

オブジェクト • プログラミングでのオブジェク トは,コンピュータでの操作や 処理の対象となるもののこと. • オブジェクトは1つあるいは複 数のデータを持つことができる 4

5.

メソッド • メソッドは,オブジェクトに属 する操作や処理のこと hero.moveDown() hero はオブジェクト moveDown() はメソッド 間を「.」で区切っている • 引数(ひきすう)とは,メソッ ドに渡す値のこと 5

6.

式の抽象化 100 * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 a * 1.1 変数 a を使って,複数 の式を1つにまとめる (抽象化) 6

7.

関数 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) 式「a * 1.1」を含む 関数 foo を定義 関数 foo を使用. 100, 150, 400 は引数 7

8.

関数 • この関数の本体は 「return a * 1.1;」 • この関数は,式「 a * 1.1」に,名前 foo を付 けたものと考えることもできる 8

9.

式の抽象化と関数 抽象化前 類似した複数の式 実行結果 抽象化後 関数の定義と使用 同じ 実行結果になる 9

10.

まとめ • プログラミングでのオブジェクトは,コンピュー タでの操作や処理の対象となるもののこと • メソッドは,オブジェクトに属する操作や処理の こと • 次の関数は,式「 a * 1.1」に,名前 foo を付けた ものと考えることもできる • 式の抽象化とは,変数を使って,複数の式を1つ にまとめること 10

11.

9-2. クラス定義,コンストラ クタ 11

12.

Python のオブジェクトの生成 • 次の2つのオブジェクトを生成する Python プロ グラム a 1 2 "red" b 2 x 4 y "green" color • クラス Ball のオブジェクト生成を行うプログラム 12

13.

クラス定義 クラス定義の中には,コンストラクタの定義,その 他メソッドの定義を含める. コンスト ラクタ その他 メソッド オブジェクトの生成を行うメソッドのことを コンストラクタという 13

14.

• プログラミングでのメソッドと は,オブジェクトに関する操作 や処理のこと メソッドと クラス • メソッドは,クラスに属する • メソッド内のプログラムは,そ のメソッドが所属するクラスの 属性やメソッドへのアクセス権 がある 14

15.

属性やメソッド のアクセス • 「オブジェクト名」+「.」で 属性やメソッドにアクセスす る 15

16.

属性アクセス qty weight name 「オブジェクト名」+「.」で属性やメソッドにアクセスする 16

17.

メソッドアクセス 「オブジェクト名」+「.」で属性やメソッドにアクセスする. メソッド内でアクセスするときも「.」 ※ 下のプログラムで,「self」は,「メソッドが処理中のオ ブジェクト」を扱うための変数 17

18.

まとめ • メソッドは,クラスに属する • 「オブジェクト名」+「.」で属性やメソッドにア クセスする 18

19.

9-3. クラス階層,継承 19

20.

クラス階層 クラス階層とは,複数のクラスが親子 関係をなすこと クラスA 親 子 クラスB 親 子 クラスC 親 子 クラスD 20

21.

継承 • 継承とは,親クラスの属性とメソッドを子クラスが 受け継ぐこと • 親クラスのことを「スーパークラス」,子クラスの ことを「サブクラス」ともいう 21

22.

Python のオブジェクトの生成 • 次の3つのオブジェクトを生成 a 1 2 "red" b 3 4 "green" x 6 y "blue" color 5 x 1 r • オブジェクト生成を行うプログラム 22

23.

クラスの類似性 • 類似した2つのクラス Ball 属性 Circle 属性 x x y y color メソッド x, y, color は同じ r の有り無しが 違う color r move move reset reset メソッドの名前も 中身も全く同じとする 23

24.

2つのクラスのプログラム (親子関係にしない場合) Ball Circle 追加 全く同じ 24

25.

問いかけ 同じようなプログラムを繰り返し書きたいですか? -> No. クラス階層により解決 Ball Circle 追加 全く同じ 25

26.

クラスの親子関係 • クラス①が親,クラス②が子であるとき • クラス②は,クラス①の属性とメソッドをすべて持つ • クラス②で,クラス①にない属性やメソッドが追加さ れることがある クラス① クラスBall 親 親 子 子 クラス② クラスCircle 属性 r を追加 26

27.

クラスの親子関係 クラス名 Ball 属性 x, y, color メソッド move, reset クラス名 Circle 属性 x, y, color, r メソッド move, reset クラス Circle は,親クラスで あるクラス Ball の属性とメ ソッドを継承する. 27

28.

2つのクラスのプログラム 親子関係にしない場合とする場合の比較 Ball Ball 働きは 同じ Circle 親子関係にしない (同じようなプログラムを繰り返す) Circle 親子関係にする 28

29.

Python でのクラスの親子関係の書き方 親子関係の指定「class Circle(Ball):」 子クラスである Circle で追加される 属性,メソッドを書く コンストラクタの定義. super(Circle, self).__init__ により,親クラスの コンストラクタを呼び出していることに注意 29

30.

Python でのクラスの親子関係の書き方 親クラスのコンストラクタを 呼び出して,属性値を設定 子クラスで追加した属性を設定 30

31.

まとめ • クラス階層とは,複数のクラスが親子関係をなす こと • クラス①が親,クラス②が子であるとき • クラス②は,クラス①の属性とメソッドをすべて持つ • クラス②で,クラス①にない属性やメソッドが追加さ れることがある • 親子関係の指定は,「class Circle(Ball): 」のよ うに書く.Circle が子,Ball が親. • 継承とは,親クラスの属性とメソッドを子クラス が受け継ぐこと • 親クラスのことを「スーパークラス」,子クラス のことを「サブクラス」ともいう 31

32.

関連資料 • Python まとめページ https://www.kkaneko.jp/cc/python/googlecolab.html • Python の基本 Google Colaboratory,Paiza.IO を使用. https://www.kkaneko.jp/cc/colab/index.html • Python 入門(全6回) Google Colaboratoryを使用. https://www.kkaneko.jp/cc/pf/index.html • Python プログラミング演習(全9回) Python Tutor, VisuAlgo を使用 https://www.kkaneko.jp/cc/po/index.html • さまざまな Windows アプリケーションのインストールと設定 https://www.kkaneko.jp/cc/tools/index.html 32