つづいて、クラス関連。
クラス定義の書式
class ClassName:
<statements>
な感じ。
この定義から抜けると、クラスオブジェクトが作成され、ClassNameにクラスオブジェクトがバインドされる。
クラスオブジェクト
属性参照とインスタンス化をサポートする。
属性名として有効なのは、クラスオブジェクト生成時にクラスの名前空間にあった全ての名前。
インスタンス化はクラスオブジェクトの関数表記を使って行う。
__init__メソッド
__init__メソッドが定義されていると、新規に作成されたインスタンスに対して、
自動的に__init__メソッドがコールされる。
インスタンスオブジェクト
属性参照をサポートする。
メソッドオブジェクト
「メソッドは結合してすぐ実行される」・・・・意味がわからない・・・。
「a method is called right after it is bound」・・・もっとわからない・・・。
その他いろいろ
いろいろあるようだ。
継承
書式は以下のとおり。
class SubClassName(BaseClassName):
<statements>
多重継承
書式は以下のとおり。
class SubClassName(BaseClassName1, BaseClassName2, ...):
<statements>
残りものあれこれ
あれこれ書かれている。
反復子(iterator)
for文はコンテナオブジェクトにiter()をコールする。
※コンテナオブジェクト:不明
オブジェクトに、next()メソッドを持つオブジェクトを返す__iter__メソッドを定義すれば
iteratorをサポートできる。
ジェネレータ
反復子を作るシンプルでパワフルなツール。
yeildを使うと、iteratorを簡単に書けるらしい。
おしまい
.
0 コメント:
コメントを投稿