Pythonのクラスとは何ですか

silencement
リリース: 2019-07-08 10:23:25
オリジナル
13307 人が閲覧しました

Pythonのクラスとは何ですか

オブジェクト指向プログラミング プロセスには、クラス (クラス) とオブジェクト (オブジェクト、インスタンス、インスタンスとも呼ばれます) という 2 つの重要な概念があります。クラスは、特定のオブジェクトのバッチです。オブジェクトの抽象化は、ある概念として理解でき、オブジェクトは具体的な実体です。この意味で、私たちが日常生活で「人と」と呼んでいるものは、実は人間ではなく人間の物体なのです。

Python でクラスを定義するための簡単な構文は次のとおりです。

class 类名:
    执行语句...
    零个到多个类变量...
    零个到多个方法...
ログイン後にコピー

クラス名は正当な識別子である必要があるだけですが、これは Python の文法要件を満たすだけです。プログラムから読み取れる 性別の観点から、Python のクラス名は 1 つ以上の意味のある単語で連結する必要があります。各単語の最初の文字は大文字で、他の文字はすべて小文字です。単語の間に区切り文字を使用しないでください。

上記の定義から判断すると、Python のクラス定義は関数定義に似ており、すべてコロン (:) で始まり、均等にインデントされた部分がクラス本体となります。違いは、関数定義では def キーワードが使用されるのに対し、クラス定義では class キーワードが使用されることです。

Python のクラス定義は、クラス ヘッダー (クラス キーワードとクラス名の部分を参照) と、均一にインデントされたクラス本体で構成されます。クラス本体の 2 つの最も重要なメンバーは、クラス変数とメソッドです。クラスにクラス変数とメソッドが定義されていない場合、そのクラスは空のクラスと同等になります。空のクラスが他の実行可能ステートメントを必要としない場合は、 pass ステートメントをプレースホルダーとして使用できます。たとえば、次のクラス定義が許可されます。

class Empty:
    pass
ログイン後にコピー

一般的に、空のクラスには実用的な意味はあまりありません。

クラス内のメンバーの定義順序は影響を受けず、メンバーは相互に呼び出すことができます。

Python クラスの 2 つの最も重要なメンバーは、変数とメソッドです。クラス変数はクラス自体に属し、クラス自体に含まれる状態データを定義するために使用されます。一方、インスタンス変数はオブジェクトに属します。クラスの。オブジェクトに含まれる状態データを定義するために使用されます。メソッドは、このクラスのオブジェクトの動作または関数の実装を定義するために使用されます。

Python は動的言語であるため、そのクラスに含まれるクラス変数は動的に追加または削除できます (プログラムがクラス本体内の新しい変数に値を割り当てるとき、クラス変数が追加されます)。プログラムはどこにでもクラス変数を追加できます。既存のクラスに変数を追加します。プログラムは、del ステートメントを使用して既存のクラスのクラス変数を削除できます。

同様に、Python オブジェクトのインスタンス変数も動的に追加または削除できます (新しいインスタンス変数に値が割り当てられている限り、インスタンス変数は追加されます)。そのため、プログラムはインスタンス変数をそのオブジェクトに追加できます。独自のオブジェクトを任意の場所に配置でき、既存オブジェクトのプログラム インスタンス変数は del ステートメントを使用して削除できます。

クラスに定義されたメソッドは、デフォルトではインスタンス メソッドです。インスタンス メソッドの定義方法は、インスタンス メソッドの最初のパラメータが呼び出し元にバインドされることを除いて、基本的に関数を定義する方法と同じです。したがって、インスタンス メソッドは少なくとも 1 つのパラメータ (通常は self という名前) を定義する必要があります。

注: インスタンス メソッドの最初のパラメータは self である必要はありません。実際、任意のパラメータ名を付けることができます。パラメータに self という名前を付けるのは単なる慣例であり、これが最も読みやすくなります。 。

インスタンス メソッドには __init__ という特別なメソッドがあり、このメソッドはコンストラクター メソッドと呼ばれます。コンストラクターはこのクラスのオブジェクトを構築するために使用され、Python はコンストラクターを呼び出すことによってこのクラスのオブジェクトを返します (new を使用する必要はありません)。

二重アンダースコアで始まり二重アンダースコアで終わる Python の多くのメソッドには特別な意味があります。これらの特別なメソッドについては、このチュートリアルで後ほど詳しく紹介します。

コンストラクターはクラスがオブジェクトを作成するための基本的な方法であるため、Python にも関数が用意されています。開発者がクラスのコンストラクターを定義しない場合、Python は次の内容を含むクラスのコンストラクターを自動的に定義します。 Only one self. パラメータのデフォルトのコンストラクタ。

次のプログラムは Person クラスを定義します:

class Person :
    '这是一个学习Python定义的一个Person类'
    # 下面定义了一个类变量
    hair = 'black'
    def __init__(self, name = 'Charlie', age=8):
        # 下面为Person对象增加2个实例变量
        self.name = name
        self.age = age
    # 下面定义了一个say方法
    def say(self, content):
        print(content)
ログイン後にコピー

上記の Person クラス コードは構築メソッドを定義します。構築メソッドには特別なメソッド名のみがあります: __init__、最初の部分メソッドの 1 つのパラメーターも self であり、コンストラクターによって初期化されたオブジェクトにバインドされています。

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

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