SlideShare a Scribd company logo
1 of 15
ピカチュウによる
オブジェクト指向入門
(新版)
東京海洋大学
久保 幹雄
オブジェクトにくっついているものは
「オブジェクト. なんとか」と記述する!
つまり「.」(ドット)こそが
オブジェクト指向である!
例として
ピカチュウ(Pikachu) オブジェクトを考える!
class Pikachu():
….
Pikachu.cheak
ピカチュウ の ほっぺ
.
ピカチュウ(Pikachu)オブジェクト
の(・)ホッペ(cheak) 属性
(Attribute or Property)
Pikacyu.cry( )
ピカチュウ が(.) 泣く
cryメソッド
ピカチュウ が(.) 泣く
(cryメソッド=関数)
Pikachu.eat( “Apple” )
ピカチュウ が
「リンゴ」(引数) を(.) 食べる
ピカチュウオブジェクト
が(・)「リンゴ」(引数:ひきすう)
を食べる
class 型名( ):
def 初期化(自分,引数):
…
def メソッド(自分,引数):
…
実体 = 型名(引数)
class Pikacyu( ):
def _ _init_ _(self, owner ):
…
def cry(self):
…
def eat(self, something):
…
MyPika = Pikacyu( “Mikio”)
ピカチュウのクラス(型) Pikacyu
ピカチュウの(インスタンス)実体
Mikio’s Pikacyu
class Pikacyu():
def __init__(self,owner=""):
if owner=="":
self.name="Wild Pikacyu"
else:
self.name=Owner+"'s Pikacyu“
def __str__(self):
return self.name
ピカチュウのクラス(型)
コンストラクタ(初期化)
所有者(Owner)を引数
Owner は ”” が既定値
Ownerが””のときは
野生のピカチュウ
そうでないときは
名前をつける
文字列を返す
特別なメソッド
名前属性 .name を返す
Pika1=Pikacyu()
print Pika1
Pika2=Pikacyu("Satoshi")
print Pika2
Wild Pikacyu
Satoshi's Pikacyu
ピカチュウの(インスタンス)実体の生成
1000匹の野生のピカチュウ
for i in range(1000):
Pika=Pikacyu()
class Pikacyu():
id= 0
def __init__(self,owner=""):
Pikacyu.id +=1
self.number = Pikacyu.id
….
def __str__(self):
return self.name + " No." + str(self.number)
クラス変数とインスタンス変数
self.numberは 自分の
番号
これはインスタンス変数
idは ピカチュウクラスの
通し番号
これはクラス変数
インスタンスが生成される
度にクラス変数idを1増やす
名前と番号を返す
PikaList=[]
for i in range(100):
Pika=Pikacyu()
print Pika
PikaList.append(Pika)
1000匹のピカチュウインスタンスのリストの生成
Wild Pikacyu No.1
Wild Pikacyu No.2
Wild Pikacyu No.3
Wild Pikacyu No.4
Wild Pikacyu No.5
Wild Pikacyu No.6
...
Wild Pikacyu No.99
Wild Pikacyu No.100
継承
class FlyingPikacyu(Pikacyu):
def __init__(self,owner=""):
self = Pikacyu.__init__(self,owner)
def Fly(self):
print "I can fly!"
NewPika=FlyingPikacyu("Mikio")
print NewPika.fly()
>>> "I can fly!"
空飛ぶピカチュウクラスは
ピカチュウクラスを継承
新しい「空を飛ぶ」
メソッドの追加
親(スーパ-)クラス
子(サブ)クラス

More Related Content

What's hot

Pythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI GymトレーニングPythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI GymトレーニングTakahiro Kubo
 
ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10ESM SEC
 
(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向Morpho, Inc.
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobileyusuke shibui
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介Recruit Technologies
 
世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョンAtsushi Nakamura
 
BRDF レンダリングの方程式
BRDF レンダリングの方程式BRDF レンダリングの方程式
BRDF レンダリングの方程式康弘 等々力
 
機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)Yukio Okajima
 
PDPC法(過程決定計画図)
PDPC法(過程決定計画図)PDPC法(過程決定計画図)
PDPC法(過程決定計画図)博行 門眞
 
DLゼミ: Ego-Body Pose Estimation via Ego-Head Pose Estimation
DLゼミ: Ego-Body Pose Estimation via Ego-Head Pose EstimationDLゼミ: Ego-Body Pose Estimation via Ego-Head Pose Estimation
DLゼミ: Ego-Body Pose Estimation via Ego-Head Pose Estimationharmonylab
 
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本Hajime Fujita
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)Preferred Networks
 
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみたグラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみたCData Software Japan
 
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga JiroJiro Iwanaga
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumiItsuki Kuroda
 
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理Toru Tamaki
 

What's hot (20)

Pythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI GymトレーニングPythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI Gymトレーニング
 
ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10ふりかえりで学んだこと ベスト10
ふりかえりで学んだこと ベスト10
 
(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
 
世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン
 
07 リーダーシップ
07 リーダーシップ07 リーダーシップ
07 リーダーシップ
 
BRDF レンダリングの方程式
BRDF レンダリングの方程式BRDF レンダリングの方程式
BRDF レンダリングの方程式
 
機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)機械学習をScrumで組織的に学習する (RSGT2022)
機械学習をScrumで組織的に学習する (RSGT2022)
 
PDPC法(過程決定計画図)
PDPC法(過程決定計画図)PDPC法(過程決定計画図)
PDPC法(過程決定計画図)
 
DLゼミ: Ego-Body Pose Estimation via Ego-Head Pose Estimation
DLゼミ: Ego-Body Pose Estimation via Ego-Head Pose EstimationDLゼミ: Ego-Body Pose Estimation via Ego-Head Pose Estimation
DLゼミ: Ego-Body Pose Estimation via Ego-Head Pose Estimation
 
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
トップエンジニアが実践する思考整理法~テクニカルライティングを用いた課題解決の基本
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
 
RAPiD
RAPiDRAPiD
RAPiD
 
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみたグラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
 
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
 
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
 

More from Mikio Kubo

ここが変だよ人道支援ロジスティクス
ここが変だよ人道支援ロジスティクスここが変だよ人道支援ロジスティクス
ここが変だよ人道支援ロジスティクスMikio Kubo
 
サプライ・チェイン・アナリストになるために
サプライ・チェイン・アナリストになるためにサプライ・チェイン・アナリストになるために
サプライ・チェイン・アナリストになるためにMikio Kubo
 
ピカチュウによるPythonオブジェクト入門
ピカチュウによるPythonオブジェクト入門ピカチュウによるPythonオブジェクト入門
ピカチュウによるPythonオブジェクト入門Mikio Kubo
 
久保研究室とは
久保研究室とは久保研究室とは
久保研究室とはMikio Kubo
 
Mickey mouseに会うために
Mickey mouseに会うためにMickey mouseに会うために
Mickey mouseに会うためにMikio Kubo
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011finalMikio Kubo
 
4章在庫の数理
4章在庫の数理4章在庫の数理
4章在庫の数理Mikio Kubo
 

More from Mikio Kubo (16)

Hl20160929
Hl20160929Hl20160929
Hl20160929
 
ここが変だよ人道支援ロジスティクス
ここが変だよ人道支援ロジスティクスここが変だよ人道支援ロジスティクス
ここが変だよ人道支援ロジスティクス
 
サプライ・チェイン・アナリストになるために
サプライ・チェイン・アナリストになるためにサプライ・チェイン・アナリストになるために
サプライ・チェイン・アナリストになるために
 
Why python
Why pythonWhy python
Why python
 
Why python
Why pythonWhy python
Why python
 
ピカチュウによるPythonオブジェクト入門
ピカチュウによるPythonオブジェクト入門ピカチュウによるPythonオブジェクト入門
ピカチュウによるPythonオブジェクト入門
 
Pythonintro
PythonintroPythonintro
Pythonintro
 
Python opt
Python optPython opt
Python opt
 
久保研究室とは
久保研究室とは久保研究室とは
久保研究室とは
 
Mickey mouseに会うために
Mickey mouseに会うためにMickey mouseに会うために
Mickey mouseに会うために
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011final
 
Scmbook5 e
Scmbook5 eScmbook5 e
Scmbook5 e
 
4章在庫の数理
4章在庫の数理4章在庫の数理
4章在庫の数理
 
Current trend
Current trendCurrent trend
Current trend
 
Python ehon1
Python ehon1Python ehon1
Python ehon1
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 

ピカチュウによるPythonオブジェクト入門2