【Python】ファイル操作 読み込み【基本講座】
Pythonもオブジェクト指向のプログラミング言語です。そのため、クラスという概念があります。関数と同じような感じで書くことができます。クラスは作業効率を上げるためにも非常に重要な概念ですので是非マスターしましょう。
クラス作成の基本操作
classの基本構造
classの定義は、class クラス名で定義します。また、メソッドの定義は、関数と同じようにdef文で行います。
実践例は、下記のように書きます。
1 2 3 4 5 6 |
class Hoge: def mage: print("AAA") def moge: pass |
クラス名は、慣習的に先頭を大文字にします。複数単語の場合「_」で繋げず、単語の先頭を大文字にするのが一般です。キャメルケースと呼ばれるものです。
初期化メソッド __init__
初期化メソッドとは、メソッドの中で、インスタンスの初期化を行うメソッドのことを言います。初期化メソッドは、__init__() に決まっています。また、第一引数は、selfを渡すことが決まっています。
先頭に「__」をつけたメソッドは、特別な役割をする、特殊メソッドと呼ばれます。
__init__()メソッドの具体例はこんな感じです。
1 2 3 4 5 |
class Hoge: def __init__(self, id, name, password): self.id = id self.name = name self.password = password |
また、このインスタンス変数にアクセスするには、次のようにインスタンスを生成する必要があります。
1 2 3 4 5 6 7 8 9 10 11 |
class Hoge: def __init__(self, id, name, password): self.id = id self.name = name self.password = password # インスタンス生成 hoge = Hoge(1, "AAA", "abc123") # nameの値を変更してみる。 hoge.name = "BBB" |
最後のインスタンスの値を変更している箇所のように
変数名.インスタンス変数名
とするとアクセスできます。
クラスメソッドを定義する
初期化メソッドの他にも、当然メソッドを作れます。
メソッドの定義は関数の作り方と類似しています。しかし、第一引数にselfを取るというのが大きな違いになります。
1 2 3 4 5 6 7 8 |
class Hoge: def __init__(self, id, name, password): self.id = id self.name = name self.password = password def my_print(): return print(self.name) |
メソッドへのアクセスは、インスタンスを生成して、
インスタンス名.変数名
とすればOKです。
また、クラス内で定数を宣言することもあるでしょう。(def文のブロック内で宣言しないもの)
1 |
Hoge.VALUE = 10 |
慣習的に定数はすべて大文字で書きます。変数と区別するためです。
アトリビュートを外部からアクセスできないようにする
アトリビュートというのは、クラス内で宣言された、変数やメソッドのことです。
これらを外部からアクセスできないようにカプセル化することができます。
そのためには、アクセッサメソッドというものを使います。
変数名やメソッド名の前に「__」を付けるだけで良いのです。
カプセル化した変数に外部からアクセスしたい時は、必要に応じてメソッドを用意します。値を取得したいメソッドを「ゲッターメソッド」、値を設定するメソッドを「セッターメソッド」といいます。
1 2 3 4 5 6 7 8 9 10 11 |
class Hoge: def __init__(self, id, name, password): self.id = id self.name = name self.password = password def get_name(self): return self.__name; def set_password(self, password): self.__password = password |
Pythonおすすめ書籍
最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。
|
|
|