Select Language

AI Technology Community

486views
0likes

7.1、Pythonクラスの定義と使用

クラスの最も基本的な機能は、新しい型を定義することです。次の構文を使用して、何の属性も持たない、何もできない空のクラスを定義することができます。class クラス名: pass ここでのクラス名は、変数名と同じように、アルファベット、数字、アンダースコアで構成でき、一般的に先頭文字は大文字で、長さに制限はありません。クラスを定義した後
459views
0likes

7.2、Python_init_()と_del_()関数の使い方

__init__()(以降、初期化関数と呼ぶ)はインスタンスオブジェクトを初期化するために使われます。インスタンスオブジェクトを構築するたびに、そのクラスの初期化関数が呼び出されます。この初期化関数では、インスタンスオブジェクトを初期化したり、クラスの特定の属性(例えば、そのクラスによって構築されたインスタンスオブジェクトの数)を更新したりすることができます。初期化関数はパラメータを持つこともでき、異なるパラメータを使用して異なるインスタンスを構築することができます。
485views
0likes

7.3、Pythonクラスのプロパティとインスタンスのプロパティ

実はクラス自体もオブジェクトであり、独自の属性も持っています。クラスの属性は一般的にクラスに関連する内容を表し、例えばクラスのバージョンや作者などの情報です。クラスの属性の定義は、クラスの中で直接変数を定義するだけです。以下では、クラス Student にバージョンと作者の情報を追加します。 class Student: # クラスStudentを定義... version = 1.0 # クラスの属性version.
464views
0likes

7.4、Python selfの使い方

オブジェクトの属性は、クラスの外部では「オブジェクト名。属性」で表し、クラスの内部では「self.属性」で表します。オブジェクトの属性にも追加、削除、変更、検索の操作があります。たとえば、代入文を使って属性を変更または追加することができ、del() を使ってオブジェクトの属性を削除することができます。属性の追加は、Python のような動的言語では非常に簡単で、追加するタイミングに制限はありません。
487views
0likes

7.5、Python getattr()、setattr()、hasattr()、delattr()の使用方法

先に紹介した方法を使って属性を操作するほかに、属性を操作するための汎用的な方法もあります。この方法は静的リフレクションメカニズムに似ており、つまりオブジェクトの具体的な定義がわからない場合でも、クエリなどの方法でそのオブジェクトのいくつかの情報を取得することができます。例えば、オブジェクト a を取得しましたが、オブジェクト a がどのような型で、どのような属性を持っているかわからない場合、di
479views
0likes

7.6、Python静的方法の使用

静的メソッドとは、特定のオブジェクトにバインドされていないメソッドです。オブジェクトメソッドと異なり、定義時の最初の引数が self ではなく、これは普通の関数に似ています。self 引数がないため、「self.属性名」を使って特定のオブジェクトの属性にアクセスすることもできません。静的メソッドの定義形式は以下の通りです。@staticmethoddefstatic_func():passStude
443views
0likes

7.8、Pythonクラス方法の使用

クラスメソッドも特定のオブジェクトに属さないため、その最初のパラメータはselfではありません。しかし、それは特定のクラスに属するため、最初のパラメータは必ずclsです。@classmethoddefstatic_func(cls,パラメータリスト):pass使用する際には最初のパラメータclsを指定する必要はありません。なぜなら、この関数には暗黙的な属性__self__があり、それがclsの値となるからです。 class Student: # 定義
498views
0likes

7.9、Pythonクラスのプライベート属性

C++ と Java では、属性(メンバー)にアクセス制御があります。例えば、public は任意のコードがその属性にアクセスできることを表し、private は現在のクラスのコードのみがその属性にアクセスできることを表します。Python ではこのアクセス制御子がありませんが、属性の前に __ という 2 つの下線を付けることで、その属性がクラス外部からアクセスできないことを表すことができます。一般的な属性はクラスの外部からもアクセスできます。
500views
0likes

7.9、Python読み取り専用属性の設定(2つの方法)

デフォルトでは、インスタンスオブジェクトのすべてのメンバーは読み取りと書き込みが可能です。ただし、時にはいくつかの制限を設けたい場合があります。例えば、読み取りのみ可能で修正はできないようにしたり、修正する値が型要件や範囲要件を満たさなければならないことをチェックしたりします。この機能を実現する方法は複数ありますが、ここでは主に @property 修飾子を使用する方法と __setattr__() 関数を定義する方法の2つを紹介します。@property修飾子を使用するこの方
498views
0likes

7.10、Pythonクラスの派生(派生クラス)

派生はオブジェクト指向プログラミングの基本概念であり、ある基本クラスに基づいて新しいクラスを簡単に作成する能力を私たちに与えます。派生クラスの方法を使用することで、他人のコードを再利用することができ、ゼロから自分自身のコードを作成する必要はありません。ある既存のクラスに基づく新しいクラスを定義する方法は次の通りです:def新しいクラス(既存のクラス):pass既存のクラスは、時には基底クラス、親クラスとも呼ばれます;新しいクラスも
post
  • 10

    item of content
前の章では、リストや辞書などのPythonの予め定義されたデータ型について説明しました。しかし、自分で新しいタイプを定義したい場合、クラスを使用する必要があります。つまり、クラスを使用することで自分だけのデータ型を定義でき、システムで定義された型だけを使う以上のことができます。
クラスはオブジェクト指向プログラミングにおいて非常に基本的な概念であり、最も基本的な機能は新しいデータ型を作成することです。さらに、クラスAから新しいクラスBを派生させることができ、その際クラスBはクラスAのすべての属性を継承します(これを継承機能と呼びます)。
この章では、クラスの定義と使用方法について説明します。具体的には、クラスのプロパティとメソッド、クラスの派生方法、多重継承の使用方法などを解説します。