View
188
Download
5
Category
Preview:
Citation preview
Python Semi 第3回黒柳研究室M1
学籍番号:26413508
大脇謙太
第1回 Pythonとは , 基本的文法 , 組み込み型
第2回 パッケージを使う
第3回 オブジェクト指向とは
第4回 Numpy , Scipyを使った科学計算
Pythonゼミの予定
前回のおさらい
モジュールを使う
import
from
as
紹介したモジュール
math
wave
Numpy
Matplotlib
cos関数
スペクトラム
スペクトログラム
FIDELにあげておきます
\\fidel\share\黒柳研資料\PythonSemi\第2回課題\
pysemi2_1.py
pysemi2_2.py
pysemi2_3.py
第2回課題ソースコード
オブジェクト指向とはオブジェクトとは
クラスとは
インスタンスとは
1. オブジェクト指向とは
2. オブジェクトとは
3. クラスとは
4. インスタンスとは
オブジェクト指向を理解するために
もの(人)があって、それに命令を出す
オブジェクト指向とは?
テレビ例1
• 1chにしなさい!
•ボリュームを上げなさい!
•電源をきりなさい!
生徒例2
•OOまでに~~やりなさい!
•レポートを提出しなさい!
•学籍番号と名前を教えて
車例3
• スピードをあげなさい!
• スピードをおとしなさい!
•ギアを変えなさい!
データと命令をまとめたもの
オブジェクトとは?
車種メーカーナンバー
…
アクセル()
ブレーキ()
ハンドル()
…
メンバ変数
メソッド
設計図!
必要なメンバ変数
メソッドの処理
それらが書かれたもの
クラスとは?
クラスをもとに作ったオブジェクト!
データやメソッドをもつ
インスタンスとは?
オブジェクトを使う
例: math モジュール
モジュールオブジェクト
pi
e
sin()
cos()
tan()
…
メンバ変数
メソッド
math
math.sin(x)とかく
メソッドの記述
math
sin(x)の計算結果です
sin(x)を計算して!
numpy.sin(x)とかく
メソッドの記述
numpy
sin(x)の計算結果です
sin(x)を計算して!
同じ操作にたいして同じメソッドが使える
ポリモーフィズムという
同じメソッド??
math numpy
math.sin(x) numpy.sin(x)
“厳密には”
違うメソッド
インスタンスを使う
例 : ファイルリード
file
いったい何が書いてあるんだ?
Wave_Readクラス ( wave )
インスタンスを生成
wave
file 専用Wave_read
オブジェクトです!
fileが読みたい
Wave_readクラス
これをもとにして
インスタンスを使う
file
読める!読めるぞ!getframerate()
readframes()
…
wavファイルを扱うときに使う
研究でもよく使うパッケージ
wave(第2回より再掲)
例1 import wave
2 wf = wave.open( filename , “r” ) # ファイルを開く
3 fs = wf.getframerate() # サンプリングレートを返す
4 wf.setpos( pos ) # ファイルポインタを移動する
5 c = wf.readframes(n) # nサンプル読み込みます(cは文字列)
6 wf.close() # ファイルを閉じる
何でできているのか?
どうやって作ったのか?
どうして読めるのか?
わからないけど、
必要なことはできる
これをカプセル化という
虫メガネの正体は?
変数に代入する
同じ型しか入らない
C言語
int
X16
“Hello World”
16.0
X :X :
オブジェクト指向
代入する型は?
どんなオブジェクト?
気にする必要はなし
変数が型を合わせてくれる
これを動的型付けという
変幻自在な箱
変数に何のオブジェクトが入っているか注意
うっかりすると
X
X! getnframes()だ!突然のエラー
クラスを作る
種類
攻撃力
切れ味
攻撃範囲
攻撃モーション
ガード
近接武器を作る
メンバ変数
メソッド
種類
攻撃力
使える弾
攻撃範囲
攻撃モーション
装填
遠距離武器を作る
メンバ変数
メソッド
まとめて設定できないか
共通点は多い
クラスを多重に利用
武器
近接武器 遠距離武器
種類攻撃力攻撃範囲
切れ味
攻撃モーション
ガード
使える弾
攻撃モーション
装填
共通項目はまとめて
違う部分だけをかく
関係がわかりやすい
これをインヘリタンス
(継承)という
多重に利用すれば
ポリモーフィズム カプセル化 動的型付け 継承
オブジェクト指向の特徴
Enjoy your OO programing!
みんなのPython – SoftBank Creative
オブジェクト指向 – Wikipediahttp://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91
オブジェクト指向プログラミング - Wikipediahttp://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
参考文献
Recommended