2024年度 電子情報通信課程 計算機実習II

今日の説明動画

本日の説明は,6本の動画に分かれています.それぞれ視聴して,理解ができたら次に進むようにして下さい.

動画の長さは次の通りです.自分のペースで進めながらも,1コマで終わるように頑張ってください.

  1.  計算機実習2/計算機基礎実習2-12回目ex12-1 - 06分46秒
  2.  計算機実習2/計算機基礎実習2-12回目ex12-2 - 05分17秒
  3.  計算機実習2/計算機基礎実習2-12回目ex12-3 - 03分53秒
  4.  計算機実習2/計算機基礎実習2-12回目ex12-4 - 05分05秒
  5.  計算機実習2/計算機基礎実習2-12回目ex12-5 - 02分11秒
  6.  計算機実習2/計算機基礎実習2-12回目ex12-6 - 06分18秒
  7. 計 29分28秒

講義に関して,ちょびっとコメント

前回のレポート採点結果は,こちらです.

気になったところのメモ

  1. 課題11-4:「どんな問題が起こるか」です.「ボタンを押すことができる」のは問題ではありません.「押すことができた結果何が起こってしまうのか」を考えて下さい.以前の「画面の外を動くことができる」のと同様で,見えないところでも主人公が動いています.ただし,「動いている」だけでは問題ではありません.それでイベントが発生してしまうと,「クリアしたのに,別のイベントの画面が表示される」という問題が生じます.

素材について

いらすとやさんをもとに作成した素材は, , です.名前をつけて保存して下さい.

オブジェクト指向とクラス

今日のポイント

同じ種類の変数を複数扱うには,配列変数を使いました.

同様に,プログラム(関数)やデータを1つの塊として,複数扱う方法として「オブジェクト」という概念があります.

今までに使ってきたtkinter というモジュールを使ったウインドウ作成は,オブジェクトを操作していました.

ウインドウというオブジェクトを用意し,その中の関数を利用したり変数を設定したりしていました.

オブジェクトの作成は,「オブジェクト変数 = クラス名()」 の形です.「root = tkinter.Tk()」がこれに該当します.

オブジェクトが持っている関数を呼び出すのは,「オブジェクト変数.関数名()」です.「root.title("計算機実習2")」がこの形式です.

オブジェクトが持つ変数も属性(Attribute)という呼び名で使うことができます.これは今までには出てきていない形式です.

関数を呼び出すときは引数を扱いますので「()」が必要です.一方変数を扱うときには不要です.


オブジェクトを作成するには,まず「クラス」を用意する必要があります.

そのクラスの関数を呼び出すと,その種類のオブジェクトが作られます.

課題 12-1
  1. 教科書pp.194-197を読み,chap7-class.pyを入力して実行しましょう.
  2. 教科書p.198を読み,chap7-class.py を更新して実行しましょう.
  3. 教科書p.198を読み,「def fight(self)」の部分を「def fight()」に書き換えて,「selfを書かなかった場合に表示されるエラー」を確認しましょう.そのエラーメッセージを報告して下さい.

コンストラクタ

python ではオブジェクト生成時に,__init__ という関数が呼び出されるようになっています.

そこにオブジェクトの初期設定を書くことができます.

この関数のことを「コンストラクタ」といいます.

一般には,変数の設定を行ったりします.

また,オブジェクトは生成時に名前が付くため,クラス内ではそのオブジェクト自身を指し示す名前を固定することができません.そのため,クラス内で自分自身(オブジェクト自身)を指し示すときには,「self」を使います.これが先ほどの課題12-1に出てきた「self」です.

課題 12-2
  • 教科書pp.199-200を読み,chap7-class.pyを更新しましょう.
  • 「コンストラクタ」が理解できましたか?
  • 「self」の扱いが理解できましたか?
  • 教科書p.199のchap-class.pyにおいて名前を扱う変数(属性)として「self.name」と「chara1.name」が出てきます.それぞれ何を意味しているのか(どこに保管されている変数なのか)を説明して下さい.

引数を持つコンストラクタ

オブジェクト生成時に,引数で情報を渡すことができます.

ボタンを作るときに,「Button(text = "ボタン名")」という書き方をしていましたが,この「text = "ボタン名"」の部分を見ていきます.

課題 12-3
  1. 教科書pp.200-201を読み,chap7-class.pyを更新しましょう.
  2. オブジェクトを作るときに,「CharaTest("戦士")」として「"戦士"」の値を引き渡しています.
  3. この「"戦士"」の値がどのように使われてオブジェクトが作られているのかを説明して下さい.

次に進むには,■こちら■をクリックして下さい.