Pythonのクラスとは何ですか

藏色散人
リリース: 2019-07-06 11:51:25
オリジナル
5566 人が閲覧しました

Pythonのクラスとは何ですか

オブジェクト指向の最も重要な概念はクラスとインスタンスです。クラスは Student クラスなどの抽象テンプレートであり、インスタンスはクラスに基づいて作成されることに注意してください。特定の「オブジェクト」の場合、各オブジェクトには同じメソッドがありますが、それらのデータは異なる場合があります。

例として Student クラスを取り上げますが、Python ではクラスを定義するには class キーワードを使用します:

class Student(object):
    pass
ログイン後にコピー

class の後にクラス名 (Student) が続きます。通常、クラス名は大文字で始まります。(オブジェクト) が続く単語は、クラスがどのクラスから継承されるかを示します。継承の概念については後で説明します。通常、適切な継承クラスがない場合は、オブジェクト クラスが使用されます。これは、すべてのクラスが最終的に継承するものです。

Student クラスを定義した後、Student クラスに基づいて Student のインスタンスを作成できます。インスタンスの作成は、クラス名 ():

>>> bart = Student()
>>> bart
<__main__.Student object at 0x10a67a590>
>>> Student
<class &#39;__main__.Student&#39;>
ログイン後にコピー

変数によって実行されます。 bart は Student オブジェクトの場合、次の 0x10a67a590 がメモリ アドレスを指します。各オブジェクトのアドレスは異なり、Student 自体がクラスです。

属性をインスタンス変数に自由にバインドできます。たとえば、name 属性をインスタンス bart にバインドします:

>>> bart.name = &#39;Bart Simpson&#39;
>>> bart.name
&#39;Bart Simpson&#39;
ログイン後にコピー

クラスはテンプレートとして機能できるため、次のときにインスタンスを作成できます。その際、バインドする必要があると思われる属性を強制的に埋め込みます。特別な __init__ メソッドを定義すると、インスタンスの作成時に名前、スコア、その他の属性が関連付けられます。

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
ログイン後にコピー

__init__ メソッドの最初のパラメーターは常に self であり、インスタンス自体の作成を示します。したがって、self は作成されたインスタンス自体を指すため、__init__ メソッド内でさまざまなプロパティを self にバインドできます。

__init__ メソッドでは、インスタンスを作成するときに空のパラメーターを渡すことはできません。__init__ メソッドに一致するパラメーターを渡す必要がありますが、self を渡す必要はありません。Python インタープリター自体 インスタンス変数

>>> bart = Student(&#39;Bart Simpson&#39;, 59)
>>> bart.name
&#39;Bart Simpson&#39;
>>> bart.score
59
ログイン後にコピー

通常の関数と比較すると、クラスで定義された関数の違いは 1 つだけです。つまり、最初のパラメータは常にインスタンス変数 self であり、呼び出し時にパラメータを渡します。それ以外は、クラス メソッドは通常の関数と変わらないため、デフォルト パラメーター、変数パラメーター、およびキーワード パラメーターを引き続き使用できます。

関連する推奨事項: 「Python チュートリアル

以上がPythonのクラスとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート