[python] 関数、クラス、オブジェクト、イテラブルの整理(それぞれの関係をまとめてみた)

Pythonやり始めると、聞き慣れない言葉が頭の中を巡って今どこのステップにいるのかわからなくなってくる。以下は、自分が「木を見て森を見ず」にならないよう、いつも自分のステップを確認するための独自のまとめです。だから誤りがあるかもしれないことをあらじめお断りしておきます。

1.概念図

オブジェクト処理結果
イテラブル
ノンイテラブル
関数
クラス
– インスタンス変数(変数の定義)
– インスタンスメソッド(変数の処理 ※関数を使用)
インスタンス
  1. 関数とクラスは対語、イテラブルはオブジェクトの性質
  2. クラス + 具体的なデータ(オブジェクト) = インスタンス
  3. クラス内部にはインスタンス変数を作成するメソッドインスタンスメソッドを作成すこるメソッドがある。
  4. 関数は、引数で与えられたデータを処理。クラスはインスタンスを何個でも作れるが、関数では変数が上書きされるので常に1個しかできない。クラスには、インスタンス自体に独自の変数とメソッドを持っており、インスタンスごとに処理ができるから。
  5. イテラブルは、オブジェクトの説明,オブジェクトにはイテラブルだけでなく、すべてのデータがオブジェクトになるので、イテラブルでないものもある。

2.オブジェクト

オブジェクトの持つ性質(ミュータブルか?イミュータブルか?シーケンスか?コレクションか?)は作る型による

概念図(イテラブルの種類)

イテラブルシーケンス文字列(イミュータブル)
リスト(ミュータブル)
タプル(イミュータブル)
range関数の整数列(イミュータブル)
コレクション辞書(ミュータブル)
集合(ミュータブル)

イテラブルには文字列、list、タプル、range()の整数列、辞書、集合がある

この中のリスト、辞書、集合はミュータブル、文字列、タブル、range()の整数列はイミュータブル

順番があるのは文字列、list,タプル、range()の整数列、添字が使える

順番がないのは辞書と集合. 添字が使えないので、データの扱いに関数を使う

イテラブルでないオブジェクトは整数、実数、論理値。

思うに、これらは一まとまりで意味があり、これから一つずつ繰り返して取り出すことはないから。

どうしても取り出さなければならないこときは、文字列などに型変換してやればよい。

オブジェクトをどうやって作るか(方法論)はクラスや関数による。

3.関数

(1)オリジナルの関数を作るときは

def 関数名(引数, ….): # 引数がない場合もあり
処理内容
:
return 戻り値 # 戻り値がない場合もあり

(2)使うときは

まず import 関数名

変数名=関数()の形で使用。すなわち y = f(x)

※( )内には引数が必要な場合

4.クラス

(1)オリジナルのクラスを作るときは

class クラス名:
# 初期化メソッドの定義(内部に保持するデータの定義、インスタンス変数を作成するためのメソッド)
def init(self, 引数1,引数2,・・・) :
self.引数1 = 引数1
self.引数2 = 引数2
・・・・
# 通常のメソッドの定義(インスタンスメソッドを作成するためのメソッド)
def メソッド名(self, 引数・・・):
処理内容1
処理内容2
・・・・
return 戻り値

これを実行してできるのがインスタンス

そのうえで、これらを呼び出す作業が加わると結果が表示できる。

(2)使い方は

まず import クラス名

(1)変数名 = クラス名(引数,引数,・・・) これによってインスタンス変数の作成

(2)変数名. メソッド名() これによってインスタンスメソッドの作成

=> インスタンスの完成

4.プログラムの流れ

上から下に順に

この流れを変えるのは


(1)if文(条件分岐・あるいは「選択」とも言う)

(2)while文(繰り返し)

(3)for文(これはイテラブルの要素を取り出すという機能だから、ちょっと異なる)

コメント

タイトルとURLをコピーしました