Pythonでは、クラスのインスタンス(オブジェクト)を他のクラスに渡すことが可能です。これはオブジェクト指向プログラミングの重要な概念であり、データのカプセル化や再利用性を高めるために使用されます。
クラスのインスタンスをパラメータとして渡す
Pythonでは、一つのクラスのインスタンスを別のクラスのメソッドにパラメータとして渡すことができます。以下にその例を示します。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class MyClass:
def my_method(self, obj):
print('In my_method method of MyClass')
print("Name:", obj.name)
print("Age:", obj.age)
# オブジェクトの作成
person = Person("Alice", 30)
# MyClassのインスタンスを作成し、Personオブジェクトを渡す
my_class = MyClass()
my_class.my_method(person)
このコードでは、Person
クラスのインスタンスperson
がMyClass
のmy_method
メソッドに渡されています。my_method
内では、obj
パラメータを通じてPerson
オブジェクトの属性にアクセスしています。
クラスのコンストラクタにインスタンスを渡す
また、クラスのインスタンスを別のクラスのコンストラクタに直接渡すことも可能です。以下にその例を示します。
class Foo:
pass
class Bar:
def __init__(self, arg):
self.arg = arg
# Fooのインスタンスを作成
a = Foo()
# Barのインスタンスを作成し、Fooオブジェクトを渡す
b = Bar(a)
このコードでは、Foo
クラスのインスタンスa
がBar
クラスのコンストラクタに渡されています。その結果、Bar
のインスタンスb
のarg
属性はFoo
のインスタンスを参照しています。
以上がPythonでオブジェクトをクラスに渡す基本的な方法です。これらのテクニックを理解し活用することで、より柔軟で再利用可能なコードを書くことができます。