スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
.-- -- スポンサー広告 comment(-) trackback(-)

Pythonメモ書き:インスタンスオブジェクト

クラスオブジェクトを関数のように「呼び出す」とインスタンスオブジェクトが作成される
インスタンスオブジェクトは、プログラムの中で現実の世界の個々の物事に対応するものとして扱われる。

インスタンスオブジェクトはクラスの属性を全て継承し、独立した名前空間となる
この名前空間は作成当初は空であるが、インスタンスオブジェクトの基になったクラスオブジェクトの属性は全て継承する。

メソッドの第一引数selfを利用すれば、インスタンスの属性が作成できる
クラスのメソッドの第一引数には自動的にインスタンスオブジェクトが渡される。
インスタンスの属性の値を変更する際も、この引数を使用する。
.06 2010 Python:クラス comment0 trackback0

Pythonメモ書き:クラスオブジェクト

classステートメントが実行されると、クラスオブジェクトが作成され、それがクラス名に代入される
defステートメントと同様。

classステートメントの内側で値の代入が行われた変数はクラスの属性になる
classステートメントのスコープはクラスオブジェクトの「属性」の名前空間になる。
classステートメント実行後、<オブジェクト>.<属性>でアクセスできる。

ステート情報を保持する変数もメソッドもクラスの属性
classステートメント中の通常の変数はクラスオブジェクトの「ステート情報」を保持する属性となる。
このステート情報は同じクラスのインスタンス全てにより共有される。
classステートメント中にdefステートメントがネストされていると、このdefステートメントにより作られる関数はクラスのメソッドになる。
.06 2010 Python:クラス comment0 trackback0

Pythonメモ書き:クラスを作る

クラスはプログラムで利用する

オブジェクトの設計図

と、言える。

Pythonには多くのクラスが内蔵されており、

プログラムで実行することのうち大抵のことは

Pythonに予め内蔵されているクラスを使い

インスタンスを作ることで処理できる。

でも、ちょっと特殊なこと、独自の処理を行いたいときは

新しいクラスを作ったり、既存のクラスを拡張したりする。

クラスはインスタンスの設計図となるもの。

インスタンスがどのような性質のデータを持っているか

インスタンスの持つデータに対してどのような処理を行う必要があるのか

によって、設計図が変わってきます。

クラスの設計図には、

オブジェクトにどのようなデータを保存させるか

どんなメソッドを持つか

を定義していく。

データはアトリビュートという変数のようなものをつかって

オブジェクトに保存。

メソッドはPythonの関数定義と同じ記法を使って定義していく。
.06 2010 Python:クラス comment0 trackback0

Pythonメモ書き:クラスとインスタンス

テンプレートの勉強にクラスの概念が必要なのでメモ書き

Pythonは、プログラムの中で利用できる部品をクラスとして用意している。

クラスを使うと、組込み型として用意されていない便利なデータ型を利用して

プログラムをより手軽に作ることができる。

Pythonに内蔵されているDecimalというクラスを拝借

で、恒例のインタラクティブシェル

>>>from decimal import *
>>>a = Decimal(10)
>>>print a
10
>>>a
Decimal('!0')    #おっ!文字列として扱ってるのかしら?!
>>>print a = 30
40
>>>print a = 0.2
Traceback (most recent call last):
 File "", line 1, in
TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'
>>>print a + Decimla('0.2')
10.2
>>>print d.sqrt()
3.162277660168379331998893544

エラーになったのは

数値型とdecimal型では小数点以下の精度が違うかららしい

で、今まではデータと命令をまとめてオブジェクトって呼んでいたいました。

で、クラスから作ったオブジェクトのことを

区別するためにインスタンスと呼ぶんだって。

組込み型では、データの性質によって数値型や文字列型といった「型」があります。

クラスの場合は、クラスの名前がのこ「型」に相当する。

で、型の種類によって使えるメソッドが異なっていたのと同様に

どのクラスのインスタンスかによって使えるメソッドが変わってきます。
.06 2010 Python:クラス comment0 trackback0
 HOME 

プロフィール

Author:emi
日々、コンピューターとにらめっこしていた2010。
公の仕事に就くことを目指して教科書とにらめっこ2011,spring。
はたして2012は・・・

最新トラックバック

検索フォーム

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。