TAG クラス

hasattr 指定の属性を持つかどうかを検査する

hasattr Pythonのオブジェクトは動的に属性を追加したり削除できるため、「オブジェクトが属性を持つかどうかは(型に依存せず)状況次第」という特徴があります。 ある程度規模の大きな開発の場合、データの連携時に期待...

変数の型を判定する その2 type関数

前のページで、変数の型を判定するisinstanceという関数をご紹介しましたが、type関数と合わせてもう少し詳しく解説します。 type関数 type関数は引数で指定したオブジェクトのクラス(=型オブジェクト)を返し...

演算の定義

オブジェクトの演算 Pythonの文字列は等価演算子(==)で比較をしたり、足し算(+記号)で結合することができます。一方で引き算(-記号)を利用するとTypeErrorが発生します。これは、strクラスで等価演算や足し...

__new__メソッド

__new__ 特殊メソッドの__new__は、インスタンスの初期化前に「インスタンスを生成するために」処理が実行されます。実装する際、__new__メソッドの第1引数はclsを指定しますが、クラスオブジェクトです。また...

ディスクリプタ

ディスクリプタとは 特殊メソッド__get__、__set__、__delete__のうちいずれかのメソッドが定義されたオブジェクトをディスクリプタと呼びます。ディスクリプタをメンバにもつオブジェクトに対し、そのメンバに...

特殊メソッド

特殊メソッド Pythonのクラスでは、特殊メソッドと呼ばれるアンダーバー2つで囲まれた特定の名前のメソッドを実装すると、ある処理を実行した際にそのメソッドが自動的に呼び出されます。たとえば__init__がそれに該当し...

クラスデコレータ

注意:関数デコレータを理解されていない方は、先にそちらを理解することをおすすめします。 型オブジェクト(クラスオブジェクト)の復習 型オブジェクト(クラスオブジェクト)で説明したとおり、Pythonではクラスもただのオブ...

プロパティ

属性へのアクセス これまで見てきたように、Pythonで属性にアクセスする際は [オブジェクト名.メンバ名] の形式で記述しました。ですが、例えば「参照するときはカッコを付けたい」「更新するときはチェックをしたい」「削除...

プライベートメンバ

慣習的な命名規則によるプライベートメンバ アクセス修飾子とは、生成されたオブジェクトのメンバ(変数やメソッド)に対して外部からの参照や更新を制御するための修飾子のことです。オブジェクト指向プログラミングが可能な言語の多く...

クラスの継承

継承 オブジェクト指向プログラミングをサポートする言語では、大抵継承と呼ばれる機能が実装されています。あるクラスを定義する際に親となるクラスを指定すると、そのクラスの機能をまるごと引き継ぐことが可能となりますが、この機能...