問題

次の文章の①に当てはまる用語として、適切なものはどれか。

Pythonにおいてクラスを定義するときには、そのクラスのオブジェクト生成時に、最初に実行される処理を記述したメソッドとしてコンストラクタを定義する。オブジェクト生成時にはまず最初にコンストラクタが実行され、生成されたオブジェクトは「①」と呼ばれる。定義した一つのクラスに対して、複数の「①」を生成することができる。

したがって、クラスは設計図で、「①」はその設計図から作成された実体というふうに考えることができる。

選択肢

(a) インスタンス

(b) インヘリタンス

(c) 変数

(d) オーバーライド

  • a
  • b
  • c
  • d

Python クラス インスタンス

答え

(a)

解説

インスタンスが正解です。正解の文章は次のようになります。

Pythonにおいてクラスを定義するときには、そのクラスのオブジェクト生成時に、最初に実行される処理を記述したメソッドとしてコンストラクタを定義する。オブジェクト生成時にはまず最初にコンストラクタが実行され、生成されたオブジェクトはインスタンスと呼ばれる。定義した一つのクラスに対して、複数のインスタンスを生成することができる。

したがって、クラスは設計図で、インスタンスはその設計図から作成された実体というふうに考えることができる。

理解を深めるために、実際にプログラムをみてみましょう。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

# インスタンスの生成
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

# インスタンスのメソッドの呼び出し
person1.say_hello()
person2.say_hello()

Pythonでは、「class Person:」というふうにクラスを定義します。__init__メソッドは、コンストラクタとしての役割を果たします。コンストラクタは、オブジェクト生成時に一回だけ実行される特殊なメソッドです。

本問題の回答であるインスタンスとは、次に示す部分のことを言います。

person1 = Person("Alice", 25) 
person2 = Person("Bob", 30)

このコードでは、Personクラスのインスタンスを2つ生成しています。

1つ目は名前が"Alice"で年齢が"25歳"のPersonインスタンスで、生成後に変数person1に格納しています。

2つ目は名前が"Bob"で年齢が"30歳"のPersonインスタンスで、生成後に変数person2に格納しています。

このことからもわかるように、クラスとは設計図そのものであり、上記プログラムの場合では"Person(人間)"というものを定義した設計図です。一方でインスタンスはその設計図から生成される実体であり、"Alice"や"Bob"のことです。

テスト一覧

スキルテストが提供しているテストの一覧です。ぜひ学習や実力チェックに役立ててください。