Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでクラスのインスタンス(オブジェクト)を作成する方法を徹底解説

Pythonでクラスのインスタンス(オブジェクト)を作成するには、クラス名を関数のように呼び出し、__init__メソッドが受け付ける引数を渡します。この記事では、インスタンスの作成方法から、属性へのアクセス、属性の追加・変更・削除、そして組み込み関数を使った操作方法まで、サンプルコードとともにわかりやすく解説します。

インスタンスの作成方法

クラスのインスタンスを生成するには、クラス名を呼び出して、そのクラスの__init__メソッドが必要とする引数を渡します。

# Employeeクラスの最初のオブジェクトを作成
emp1 = Employee("Zara", 2000)

# Employeeクラスの2つ目のオブジェクトを作成
emp2 = Employee("Manni", 5000)

オブジェクトの属性へのアクセス

オブジェクトの属性にアクセスするには、ドット演算子(.)を使用します。一方、クラス変数にはクラス名を使ってアクセスします。

emp1.displayEmployee()
emp2.displayEmployee()
print("Total Employee %d" % Employee.empCount)

完全なサンプルコード

ここまでの概念をすべてまとめた完全な例が以下です。

#!/usr/bin/python
class Employee:
    '全従業員に共通する基底クラス'
    empCount = 0

    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount += 1

    def displayCount(self):
        print("Total Employee %d" % Employee.empCount)

    def displayEmployee(self):
        print("Name : ", self.name, ", Salary: ", self.salary)

# Employeeクラスの最初のオブジェクトを作成
emp1 = Employee("Zara", 2000)

# Employeeクラスの2つ目のオブジェクトを作成
emp2 = Employee("Manni", 5000)

emp1.displayEmployee()
emp2.displayEmployee()
print("Total Employee %d" % Employee.empCount)

実行結果

上記のコードを実行すると、次のような結果が出力されます。

Name : Zara ,Salary: 2000
Name : Manni ,Salary: 5000
Total Employee 2

このコードのポイントは以下の通りです。

  • empCount:すべてのインスタンスで共有されるクラス変数です。従業員の総数をカウントします。
  • __init__:コンストラクタと呼ばれる特殊なメソッドで、インスタンス生成時に自動的に呼び出され、初期化処理を行います。
  • self:インスタンス自身を指す引数で、Pythonでは各メソッドの第一引数として必ず指定します。

属性の追加・変更・削除

Pythonでは、クラスやオブジェクトの属性は、いつでも動的に追加・削除・変更できます。

emp1.age = 7   # 'age' 属性を追加
emp1.age = 8   # 'age' 属性を変更
del emp1.age   # 'age' 属性を削除

組み込み関数による属性操作

通常の構文の代わりに、次の組み込み関数を使って属性にアクセスすることもできます。

  • getattr(obj, name[, default]) — オブジェクトの属性値を取得します。属性が存在しない場合はdefaultで指定した値を返します。
  • hasattr(obj, name) — オブジェクトに指定した属性が存在するかどうかをチェックし、真偽値を返します。
  • setattr(obj, name, value) — 属性に値を設定します。属性が存在しない場合は新しく作成されます。
  • delattr(obj, name) — 指定した属性を削除します。
hasattr(emp1, 'age')      # 'age' 属性が存在すれば True を返す
getattr(emp1, 'age')      # 'age' 属性の値を返す
setattr(emp1, 'age', 8)   # 'age' 属性に 8 を設定
delattr(emp1, 'age')      # 'age' 属性を削除

まとめ

Pythonにおけるインスタンスの作成は、クラス名を呼び出して__init__メソッドに必要な引数を渡すだけで簡単に行えます。また、ドット演算子による属性アクセスに加え、getattrsetattrなどの組み込み関数を使えば、より柔軟にオブジェクトの属性を操作できます。これらの基本をしっかり押さえておくことで、オブジェクト指向プログラミングの基礎が固まります。

  1. Python tkinterでボタンを作成する方法|標準tkinterとttkの違いも解説

    PythonのGUIライブラリ「Tkinter」には、ウィンドウ上にボタンを作成するためのさまざまな方法が用意されています。この記事では、標準のtkinterモジュールを使ったボタンの作成方法と、テーマ機能を持つtkinter.ttkモジュールを使ったボタンの作成方法の2通りを、サンプルコードとともにわかりやすく解説します。 tkinterモジュールでボタンを作成する 以下のプログラムでは、まずウィンドウを作成し、続いてButtonクラスを使ってボタンを生成しています。tkinterモジュール全体をインポートしているため、作成されたボタンには従来型のスタイル(テーマ)が適用されます。 主なパラ

  2. Pythonのファイルオブジェクトとは?open関数によるファイル操作の基本を徹底解説

    Pythonでは、ファイルを読み書きする際に特別なライブラリをインポートする必要はありません。ファイル操作は言語にネイティブに組み込まれているためです。 まず最初に行うのは、組み込み関数 open() を使ってファイルオブジェクトを取得することです。open() 関数はファイルを開き、ファイルオブジェクトを返します。このファイルオブジェクトには、開いたファイルから情報を取得したり、内容を操作したりするためのメソッドや属性が含まれています。 ファイルとは何か? ファイル操作を行う前に、「ファイルとは何か」を理解しておきましょう。ファイルとは、関連する情報を保存するためにディスク上に確保された「名