Pythonの異なるタイプのオブジェクト間でパラメータを渡す方法
Pythonでは、異なるクラス間でパラメータを渡すための次のような方法があります。
- コンストラクタ:あるクラスのコンストラクタに引数を渡し、その引数を別のクラスのオブジェクトを作成するときにコンストラクタに渡します。たとえば:
class ClassA:
def __init__(self, param):
self.param = param
class ClassB:
def __init__(self, objA):
self.objA = objA
objA = ClassA('value')
objB = ClassB(objA)
- インスタンスメソッド:クラスのインスタンスメソッドに引数を渡して、他のクラスのオブジェクトを作成する際にメソッドを呼び出し、引数を渡します。たとえば:
class ClassA:
def method(self, param):
self.param = param
class ClassB:
def __init__(self):
self.objA = ClassA()
self.objA.method('value')
objB = ClassB()
- クラスメソッド: クラスメソッドを定義し、パラメータを渡してクラスインスタンスを返す。そして、別のクラスのオブジェクト作成時にそのクラスメソッドを呼び出す。例えば:
class ClassA:
def __init__(self, param):
self.param = param
@classmethod
def create_instance(cls, param):
return cls(param)
class ClassB:
def __init__(self):
self.objA = ClassA.create_instance('value')
objB = ClassB()
状況に応じた適切なパラメーター渡しの方法をこれらのメソッドの中から選んで使用することができます。