Pythonでは、関数をクラスにカプセル化する方法をどのように実現しますか?
関数をクラスとしてカプセル化するには下記手順に従います。
- classキーワードを使ってクラスを作成し、クラス名として思い通りの名前を指定します。
- クラス内で、インスタンス生成時に自動的に呼び出される特別なメソッド__init__()を定義します。__init__()メソッド内で、クラスの属性の初期化を行えます。
- 元の関数をクラスのメソッドとして定義して、メソッドの前にselfパラメータを追加し、このメソッドはクラスのインスタンスに属することを示します。selfパラメータによって、クラスのインスタンスはクラスのプロパティにアクセスできるようになります。
- その中でほかのメソッドを定義します。そのメソッドは、クラスの属性や他のメソッドを活用できます。
- クラスのインスタンスを作成することで、クラスのメソッドを呼び出すことができます。
ここでは、2つの数の合計を計算する関数をクラスにカプセル化する方法を説明します。
class Calculator:
def __init__(self):
pass
def add(self, a, b):
return a + b
# 创建类的实例
calculator = Calculator()
# 调用类的方法
result = calculator.add(3, 4)
print(result) # 输出7
上の例では「Calculator」というクラスを作成し、その中に2つの数字の足し算を行う「add」メソッドを持っています。クラスのインスタンスを作成すると、インスタンスを使って「add」メソッドを呼び出し、2つの数字を渡してそれらの足し算の結果を得ることができます。