モナーのパイソンでゴーゴー

湘南あたりの海辺より

(*´ω`)str型は不変なので新しくidentityができあがる

【実行結果】

f:id:ririruby:20200427175214j:plain

【解説】

まずはリストを空にしておき、そこに松田を追加する。

その前後のidentityは同じ。つまり変更がかかるということ。

次に文字列を松田からスーパー松田にすると

その前後のidentityは異なる。つまり新しい物ができたということ。

従ってリスト型は中身が変更できてしまうため変更前の状態が

変更後の状態になってしまう。たとえば変更前はさんがついていないのに

変更後は変更前のものもさんが付いているなど。

str型の場合は、中身が不変型なので新しい物ができる。そのため

変更前の物は残っており、きちんとさんがつかない状態で表示される。

【コード】

#リストの場合
names = list()
print('変更前のリストの内容:{}'.format(names))
print('変更前のlistのidentity:{}'.format(id(names)))
names.append('松田')
print('変更後のリストの内容:{}'.format(names))
print('変更後のlistのidentity:{}'.format(id(names)))

#文字列の場合
name = '松田'
print('変更前の文字列の内容:{}'.format(name))
print('変更前のstrのidentity:{}'.format(id(name)))
name = 'スーパー' + name
print('変更後の文字列の内容:{}'.format(name))
print('変更後のstrのidentity:{}'.format(id(name)))
 
print(' ∧ ∧  新型コロナは人が作ったかもな')
print('( ゚Д゚)')
print('海と猫が好き')