SlideShare a Scribd company logo
1 of 18
pf-8. メソッド,クラス,コン
ストラクタ,継承
(Python 入門,Google Colaboratory を使用)
(全8回)
URL: https://www.kkaneko.jp/pro/pf/index.html
1
金子邦彦
オブジェクトとメソッド
• オブジェクト
コンピュータでの操作や処理の対象となるもの
※ 名前の付いたオブジェクトのことを変数,関数な
どと呼んだりもする
• メソッド
オブジェクトに属する操作や処理
2
hero.moveDown()
hero オブジェクト
moveDown() メソッド
間を「.」で区切っている
クラス
クラスは,同じ種類のオブジェクトの集まりと考え
ることができる
3
人間
学生
学生でもあり人間でもある 人間だが、学生ではない
Python のクラスとオブジェクト
• 次の2つのオブジェクトを生成する Python プロ
グラム
• このとき,次のクラスを使うことにする
4
クラス名 C
属性 qty,
weight,
name
x 5 170.51 'apple'
y 3 40.97 ‘orange'
qty weight name
x = C(5, 170.51, 'apple')
y = C(3, 40.97, 'orange')
Python プログラム
class C(object):
def __init__(self, qty, weight, name):
self.qty = qty
self.weight = weight
self.name = name
Python プログラム
コンストラクタ
コンストラクタは,オブジェクトの生成を行うメ
ソッドである.
5
class C(object):
def __init__(self, qty, weight, name):
self.qty = qty
self.weight = weight
self.name = name
コンストラクタ
属性アクセスとメソッドアクセス
• 「.」+メソッド名によるメソッドアクセス
• 「.」+属性名による属性アクセス
6
メソッド定義内
• メソッド定義内では,self +「.」で属性やメソッ
ドにアクセス
7
class C():
def __init__(self, qty, weight, name):
self.qty = qty
self.weight = weight
self.name = name
def total(self):
return self.qty * self.weight
属性の一括取得
vars は,オブジェクトの属性名と値を一度に得る
8
スーパークラス,サブクラス
• スーパークラス「人間」
• サブクラス「学生」
「学生」のオブジェクトは,すべて「人間」である
9
人間
学生
学生でもあり人間でもある 人間だが、学生ではない
継承
• 継承は,スーパークラスの属性とメソッドをサブ
クラスが受け継ぐこと
• 但し,コンストラクタは受け継がない
10
継承
クラス名 C
属性 qty, weight, name
11
class C(object):
def __init__(self, qty, weight,
name):
self.qty = qty
self.weight = weight
self.name = name
def total(self):
return self.qty * self.weight
class E(C):
def __init__(self, qty, weight, name, price):
super(E, self).__init__(qty, weight,
name)
self.price = price
def payment(self):
return self.qty * self.price
クラス名 E
属性 qty, weight, name, price
クラス E は,スーパークラスで
あるクラス C の属性を継承する.
まとめ
• class クラス定義
• __init__ コンストラクタ
• self クラス定義内での自オブジェクトへアク
セス
• vars オブジェクトの属性名と値
• super 親クラス(スーパークラス)
12
演習
資料:14 ~ 17
【トピックス】
• クラス定義
• コンストラクタ
13
① Google Colaboratory のWebページを開く
https://colab.research.google.com
14
② 「ファイル」で,「ノートブックを新規作成」を選ぶ
③ Google アカウントでのログインが求められたときはログ
インする
15
④ コードセルを新規作成し,Python プログラムを入れる.結果を確認.
class C(object):
def __init__(self, qty, weight, name):
self.qty = qty
self.weight = weight
self.name = name
x = C(5, 170.51, 'apple')
print(vars(x))
y = C(3, 40.97, 'orange')
print(vars(y))
16
⑤ コードセルを新規作成し,Python プログラムを入れる.結果を確認.
class C(object):
def __init__(self, qty, weight, name):
self.qty = qty
self.weight = weight
self.name = name
def total(self):
return self.qty * self.weight
class E(C):
def __init__(self, qty, weight, name, price):
super().__init__(qty, weight, name)
self.price = price
def payment(self):
return self.qty * self.price
x2 = E(2, 875.34, 'melon', 500)
vars(x2)
print(x2.total())
print(x2.payment())
type(x2) 17
Python 関連ページ
• Python まとめページ
https://www.kkaneko.jp/tools/man/python.html
• Python プログラミングの基本
Python Tutor, VisuAlgo, Code Combat を使用
https://www.kkaneko.jp/pro/po/index.html
• Python プログラム例
https://www.kkaneko.jp/pro/python/index.html
• 人工知能の実行(Google Colaboratory を使用)
https://www.kkaneko.jp/ai/ni/index.html
• 人工知能の実行(Python を使用)(Windows 上)
https://www.kkaneko.jp/ai/deepim/index.html 18

More Related Content

Similar to pf-8. メソッド,クラス,コンストラクタ,継承

2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向keki3
 
基礎構文班22回目 試験対策もどき
基礎構文班22回目 試験対策もどき基礎構文班22回目 試験対策もどき
基礎構文班22回目 試験対策もどきXMLProJ2014
 
pi-13. 今までの総まとめ
pi-13. 今までの総まとめpi-13. 今までの総まとめ
pi-13. 今までの総まとめkunihikokaneko1
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化Deep Learning JP
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングkunihikokaneko1
 
Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...
Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...
Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...Yasunori Ozaki
 
po-8. クラス,メソッド,オブジェクト生成
po-8. クラス,メソッド,オブジェクト生成po-8. クラス,メソッド,オブジェクト生成
po-8. クラス,メソッド,オブジェクト生成kunihikokaneko1
 
ICDE2012勉強会:Social Media
ICDE2012勉強会:Social MediaICDE2012勉強会:Social Media
ICDE2012勉強会:Social MediaYuto Yamaguchi
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカーTetsuya Morimoto
 
po-9. クラス階層,継承
po-9. クラス階層,継承po-9. クラス階層,継承
po-9. クラス階層,継承kunihikokaneko1
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)nomuken
 

Similar to pf-8. メソッド,クラス,コンストラクタ,継承 (14)

2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向
 
第23回目
第23回目第23回目
第23回目
 
基礎構文班22回目 試験対策もどき
基礎構文班22回目 試験対策もどき基礎構文班22回目 試験対策もどき
基礎構文班22回目 試験対策もどき
 
pi-13. 今までの総まとめ
pi-13. 今までの総まとめpi-13. 今までの総まとめ
pi-13. 今までの総まとめ
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
 
Unityで覚えるC#
Unityで覚えるC#Unityで覚えるC#
Unityで覚えるC#
 
Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...
Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...
Japanese Summary; Domain Adaptation for Object Recognition: An Unsupervised A...
 
概念モデリング再考
概念モデリング再考概念モデリング再考
概念モデリング再考
 
po-8. クラス,メソッド,オブジェクト生成
po-8. クラス,メソッド,オブジェクト生成po-8. クラス,メソッド,オブジェクト生成
po-8. クラス,メソッド,オブジェクト生成
 
ICDE2012勉強会:Social Media
ICDE2012勉強会:Social MediaICDE2012勉強会:Social Media
ICDE2012勉強会:Social Media
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
 
po-9. クラス階層,継承
po-9. クラス階層,継承po-9. クラス階層,継承
po-9. クラス階層,継承
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
 

More from kunihikokaneko1

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い kunihikokaneko1
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション kunihikokaneko1
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスkunihikokaneko1
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要 kunihikokaneko1
 
cs-4. プログラミング入門
cs-4. プログラミング入門cs-4. プログラミング入門
cs-4. プログラミング入門kunihikokaneko1
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスkunihikokaneko1
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 kunihikokaneko1
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタkunihikokaneko1
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンkunihikokaneko1
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線kunihikokaneko1
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システムkunihikokaneko1
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニングkunihikokaneko1
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習kunihikokaneko1
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要kunihikokaneko1
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について kunihikokaneko1
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承kunihikokaneko1
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しkunihikokaneko1
 

More from kunihikokaneko1 (20)

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンス
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要
 
cs-4. プログラミング入門
cs-4. プログラミング入門cs-4. プログラミング入門
cs-4. プログラミング入門
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョン
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニング
 
mi-4. 機械学習
mi-4. 機械学習mi-4. 機械学習
mi-4. 機械学習
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要
 
kaneko202304.pptx
kaneko202304.pptxkaneko202304.pptx
kaneko202304.pptx
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出し
 

pf-8. メソッド,クラス,コンストラクタ,継承