0

C ++と比較した場合、Pythonでクラスがどのように異なるかを観察しました。のように、C++ で

Class test

{


    int  a,b;

    Void  func()

    {

    }  

}

上記のクラス テンプレートでは、a と b はテンプレートで定義されているオブジェクト変数のみです。

一方、Python では、クラスがクラス定義で持つことができるすべてのオブジェクト変数を指定することはできません。

お気に入り、

Class student(self):

    def func(self,x)
        pass

上記のクラス テンプレートでは、 Object 変数を定義できません。dir (学生) は、関数とクラス変数のみのリストを提供します。

このクラスのオブジェクトをインスタンス化しているとします。たとえば、S.その生徒に名前を付けたい場合は、 S.name = " " で十分です。

これで、dir(S) は name 属性を表示しますが、dir(student) には name フィールドがありません。

Python の解釈機能により、オブジェクトに必要なだけフィールドを追加できます。

私に来た質問は

  1. クラス定義で変数を定義する機能を提供しなかったのはなぜですか? 、 と

  2. インスタンス化中にメモリがどのように予約され、新しい変数がオブジェクトに追加されたときに変更されるか?

ありがとう、

-カリス

4

1 に答える 1