変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

復習ー I (General Review I) クラスとオブジェクトの概念 Concepts of class and object クラスの宣言とオブジェクトの生成 Definition of a class and creation of an object コンストラクタとメソッドのオーバーロー.
C++ 基礎. 目次 C++ とは? C++ におけるオブジェクト指向 課題 C++ とは? Cには足りなかったものが付与されて出来た物 具体的には、 情報の隠蔽(カプセル化) 共通の名前付け(関数のオーバーロード) 再利用の仕組み クラスの導入 など オブジェクト指向 C++ では大規模なプログラミングの.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
情報システムプロジェクト I 第2回 FileScanner.java ~ファイル入力、文字切り出し機能を持つ プログラムの作成~
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
Step-by-Step Guide on How to Start ALICE Analysis
アルゴリズムとプログラミング (Algorithms and Programming)
Lightweight Language Weekend ls-lRシェル
最適化ソルバーのための Python言語入門
アルゴリズムとプログラミング (Algorithms and Programming)
社会人学習講座 「Javaプログラミング概論」
オブジェクト指向入門.
ピカチュウによる オブジェクト指向入門 (新版)
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
RMI ソフトウェア特論 第6回 /
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング.
ソフトウェア工学 知能情報学部 新田直也.
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
JAVA入門後期⑩ 情報処理試験例題解説.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
第11週:super/subクラス、継承性、メソッド再定義
Javaによる Webアプリケーション入門 第6回
pp-9. Python のモジュール、パッケージ
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
2次元と3次元,ゲームエンジンの構成要素, ゲームの構成物,ゲームエンジンの例
もっと詳しくArrayクラスについて調べるには → キーワード検索
OpenCV について OpenCV とは OpenCV の Python プログラム例 配列 画像の B, G, R の 3成分
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
Pp-10. Python の numpy Python を演習と実践で学ぶシリーズ 金子邦彦.
第8回放送授業.
独習Java ・ 5.7  静的変数と静的メソッド ・ 5.8  ローカル変数と変数のスコープ  11月20日    小笠原 一恵.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
Pp-12. Python の numpy Python を演習と実践で学ぶシリーズ 金子邦彦.
ai-5. 人工知能の Python パッケージ TensorFlow と Keras の動作確認
C#プログラミング実習 第3回.
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
pf-5. 関数呼び出し,スコープ (Python プログラミング基礎を演習で学ぶシリーズ)
pf-4. 式の抽象化と関数 (Python プログラミング基礎を演習で学ぶシリーズ)
pp-9. Python のモジュール、パッケージ
JAVA入門⑥ クラスとインスタンス.
pp-1. Python を演習と実践で学ぶ シリーズ
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-3. サブクラス,継承 (C++ オブジェクト指向プログラミング入門)
cp-2. 属性,アクセサ (C++ オブジェクト指向プログラミング入門)
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
pf-2. 条件分岐 (Python プログラミング基礎を演習で学ぶシリーズ)
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
mi-5. プロダクションシステム 人工知能を演習で学ぶシリーズ(5)
JSONの概要, Cloud FireStore で JSON を扱う
君ならどうする – ls-lRシェル Python編
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
C言語講座第5回 2017 構造体.
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Presentation transcript:

変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承 Python 入門 変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承

Python 処理系の準備 Anaconda 3 の IPython コンソールを使用

変数 変数: 変数には名前と値がある

式 式から値が求まる 式は変数を含むことができる

式の抽象化と関数 類似した複数の式 上の3つの式を抽象化すると,「a * 1.08」のような式になる. 式「a * 1.08」を含む関数 foo を定義し使用

式の評価のタイミング 関数の中の式「a * x」の評価 では,最新の a の値,最新の x の値が用いられる ← foo(100) の値は 30000 a 100 x 300 ← foo(100) の値は 300000 a 100 x 3000

クラス定義とオブジェクト生成 クラス定義 クラス名 C 属性 qty, weight, name オブジェクト生成 x 5 170.51 'apple' y 3 40.97 ‘orange' qty weight name class C(object): def __init__(self, qty, weight, name): self.qty = qty self.weight = weight self.name = name x = C(5, 170.51, 'apple') y = C(3, 40.97, 'orange')

コンストラクタでの既定値(デフォルト値) クラス定義 クラス名 D 属性 s_hour, s_minute, e_hour, e_minute オブジェクト生成 z 15 30 None None z2 16 15 None None s_hour e_hour s_minute e_minute class D(object): def __init__(self, s_hour, s_minute): self.s_hour = s_hour self.s_minute = s_minute self.e_hour = None self.e_minute = None z = D(15, 30) z2 = D(16, 15)

属性アクセスとメソッド メソッド定義内では,self + 「.」で属性やメソッドにアク セスする vars() による属性表示 「.」+メソッド名による メソッド呼び出し vars() による属性表示 「.」+属性名による 属性アクセス 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

親クラスからの継承 クラス定義 クラス名 C 属性 qty, weight, name クラス定義 クラス名 E 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 クラス定義 クラス名 C 属性 qty, weight, name クラス定義 クラス名 E 属性 qty, weight, name, price クラス E は,スーパークラス であるクラス C の属性とメ ソッドを継承する.

演習 Anaconda の IPython コンソールで次を実行しなさい 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))

演習 Anaconda の IPython コンソールで次を実行しなさい class D(object): def __init__(self, s_hour, s_minute): self.s_hour = s_hour self.s_minute = s_minute self.e_hour = None self.e_minute = None z = D(15, 30) print(vars(z)) z2 = D(16, 15) print(vars(z2))

演習 Anaconda の IPython コンソールで次を実行しなさい 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)

Python のキーワード print 表示 def 関数定義 return 関数の評価値 class クラス定義 __init__ オブジェクトの生成(コンストラクタ) vars オブジェクトの属性名と値 super 親クラス(スーパークラス)の取得

終わりに 関連資料や教材は,次の Web ページで公開しています. http://www.kunihikokaneko.com/dblab/intro/ その他,さまざまな資料を金子研究室 Web ページで公開しています http://www.kunihikokaneko.com/index-j.html 謝辞: Python の作者に感謝します