Python.use(better) #OOP:文字列 -- 連結

記事一覧 Python.use(better)《Python3.1》《復刻版》

OOP:文字列 -- 連結

《著》真樹育未、小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第1版♪1988/05/23 ● 第2版♪2001/01/29 ● 第3版♪2009/12/15

オブジェクト指向プログラミング〔OOP〕の基本概念の理解を深めます。
※ Python1.5 で作成した例題を、Python3.1 で再構成しました。

コンテナー(コレクション)

任意のオブジェクトを保持するコンテナー(コレクション)として、

  • シーケンス〔sequence〕
  • マップ〔map〕

が挙げられます。

文字列

文字列は、他の(長さが1の)文字列を保持するコンテナーと見なせます。

■ 変数を利用するということ

変数によって束縛されるオブジェクトは、回収されずに存続します。そのため、オブジェクトの状態を保持したいときには、変数を利用すると便利です。

>>> a = "A"; a; id(a)
'A'
949600
>>> b = "B"; b; id(b)
'B'
578304

変数 a,b によって束縛される文字列 'A','B' を用いて、連結した文字列 'AB' を生成します。

>>> s1 = a+b; s1; id(s1)
'AB'
20276064
>>> c0,c1 = s0; c0; id(c0); c1; id(c1)
'A'
1014432
'B'
1014464

>>> s2 = a+b; s2; id(s2)
'AB'
20276096
>>> c0,c1 = s0; c0; id(c0); c1; id(c1)
'A'
1014432
'B'
1014464


演算子 + を利用するたびに、新たに連結した文字列オブジェクト s1: 'AB'〈id:20276064〉および s2: 'AB'〈id:20276096〉が生成されます。ここで、着目して欲しいのは、

  • 連結する前に用意した、変数 a,b によって束縛される文字列 'A','B' と、
  • 演算子 + によって連結された文字列 'AB' が、要素として保持する文字列 'A','B' とは、

別のオブジェクトになることです。

《note》:連結した文字列オブジェクトを構成する要素として、どの(既存の)文字列オブジェクトを再利用するかについて、プログラマーは介入できません。

》こちらに移動中です《
TOP


関連記事

Last updated♪2009/12/31