![見出し画像](https://assets.st-note.com/production/uploads/images/84062636/rectangle_large_type_2_3bb6952847f4dc08df8dfd490f33cc8f.png?width=1200)
オブジェクトのidについて【Python🐍】
こんにちは!
パソコンインストラクター歴12年目の
チサです。(*´∀`)
今日は
Python🐍の
オブジェクトのidについて
書こうと思います。
φ(..)メモメモ
昨日、
こんなnoteを書いたのですが…👇
オブジェクトには
後から変更できる ミュータブル
と
後から変更できない イミュータブル
がある。
という話です。
でもね。。
そもそも…
オブジェクトって
一体なに??
って思いません??
(´・ω・`)?
(わたしは思う💦)
ワードとかパワポだったら
オブジェクトって
▲とか●とか
図形を表す言葉だけど。。
なんと⁉️
Python🐍では
ほとんどすべてのものがオブジェクト
Σ( °ω° )ビクッ
らしいのです。
namae = "チサ"
(変数namaeに
文字列のチサを入れるという意味)
だったら…
namae っていう変数も オブジェクト
”チサ” という文字列も オブジェクト
らしい…
(º ロ º๑)
オブジェクトですよ‼️
という証拠❓は
後に .(ドット)を付けたら
いろいろメソッドが出てくること👇
(例)
![](https://assets.st-note.com/img/1659589038111-UIzlz6S9EY.png?width=1200)
.(ドット)を入力したら
続く言葉(メソッド)一覧が出てきました!
( ´∀` )
でね…
すべてのオブジェクトは
・同一性(identity)
・型
・値
この3つをもっている!
とのことり
同一性っていうのは
他の誰もおなじのをもってない
idと同じ認識でOK。
たとえば
"チサ"っていう文字列の場合
・id
・型
・値
がどんなかんじなのか?
調べてみますね!
こんな感じで書いてみました👇
![](https://assets.st-note.com/img/1659589457448-TlcRukHYTs.png)
結果はコチラ👇
![](https://assets.st-note.com/img/1659589476648-i4lta0lAoq.png)
idは数字の羅列ですね。
チサ っていう文字は
メモリの2686076375216 に入っていますよ!
いう意味らしいです。
これまで
型や値については知っていましたが…
オブジェクトにidが存在する
ってことを知らなかったので
驚きでした🫢
Pythonでいろいろ物を作るとき
idを知っておくと
何かいいことがあるのかな?
。。。o(゚^ ゚)ウーン
idの扱いは
・ミュータブル(変更可能)…
リスト型 辞書型
・イミュータブル(変更不可)…
文字列型 数値型 タプル型
この2パターンで
扱いが変わるとのこと。
イミュータブルな場合
同じ値のオブジェクトの場合
idも一緒👇
![](https://assets.st-note.com/img/1659590281299-3dmKUmVHZV.png)
![](https://assets.st-note.com/img/1659590297760-L6l8Dc57ot.png)
ためしに
同じ値を別の変数に入れてみると…
![](https://assets.st-note.com/img/1659592009715-hd174drmGm.png)
![](https://assets.st-note.com/img/1659592033056-uRSEKAWk0U.png)
『チサ』っていう文字は
文字列型だから…
変化できないイミュータブル‼️
だから
idも1個あれば十分!
みたいな感じなのかな?
(・・?
ではこんな場合は?
どうなる??
![](https://assets.st-note.com/img/1659593316098-2xE6pYvSKg.png)
同じkazokuっていう文字列型の変数だけど
値が変わったら
idも変わるのかな??
結果はコチラ👇
![](https://assets.st-note.com/img/1659593383694-fNSOzL6Cwe.png)
真ん中あたりの数字が
ちょっと違う!🤣
イミュータブル(変化できない)な場合
値が変わればidも変わる‼️
୨୧・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・୨୧
でも!
ミュータブル(変化できる)の場合は
同じ値でも
その都度idが変わります👇
![](https://assets.st-note.com/img/1659591140652-c6nQbaY68j.png)
![](https://assets.st-note.com/img/1659591171595-Vjf3rMm1eU.png)
オォォ(,,º໐º,,*)*ᕷ˖°
oyatu もoyatu1 も
リスト型でミュータブル(変化できる)
だから
同じidだとまずい!!
ってかんじで
oyatu も oyatu1 も
別のidを持たせるのかな??
( ˙꒳˙ )ホウ
じゃあ!
つぎの問題です!👇
![](https://assets.st-note.com/img/1659591659137-NG98Q0SHLA.png)
チョコ🍫とアイス🍨とポテチ🍟
が入ったoyatuリストに
クッキー🍪を追加したら
idは変わるのでしょうか??
🤔
変わる??
変わらない??
どっち??
(*˙꒳ ˙* 三 *˙꒳ ˙*)
答えは!!!!!!
![](https://assets.st-note.com/img/1659591729902-M1qIB3Bp5q.png)
中の値が
変わったから…
リストのidも変化するのかな?
(・・?
って思ったけど違った💦
同じidでした。
どうやら。
ミュータブルの値が変わった時
そのつど
値のidを見に行っているようで
ミュータブルのidは固定されてる模様。。
ミュータブルが親
イミュータブルが子👶🏻
みたいな感じになるのかな?
親はオロオロしないで
でーーんと構えてる。。
みたいな??
🤔
とにかく。。
ミュータブルなオブジェクトidは
その要素が変化しても
オブジェクトのidはおなじ。
୨୧・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・୨୧
じゃあじゃあ!
ダメ押し最後の1問!
![](https://assets.st-note.com/img/1659592740743-TSRJpXHIMX.png)
oyatuリストの0番目の"チョコ"
と
oyatu1リストの0番目の"チョコ"
idは一緒?違う??
さて?どっち!!
答えは
![](https://assets.st-note.com/img/1659592812075-4kp9K638vu.png)
チョコは文字列型だから
イミュータブル(変化しない)
だからidも一緒!
いろいろ問題作って
idが変わるのか?わからないのか?
試してみるのもおもしろいですね♪
𐤔wʷ 🤣 𐤔w𐤔
ではでは
またあした!
(´꒳`)/
【Amazonで販売中のKindle📕】
➊パソコンに関する📕 2冊
https://amzn.to/3iGt2D8
➋Kindle出版に関する📕 2冊
➌節約に関する📕 1冊
➍読書に関する📕 1冊
➎海外の方向けの📕 3冊
気になる本があれば
試し読みだけでも♪
(´▽`)