pythonのid関数は何ですか

pythonによって与えられたIDは次のように解釈されます

id(object)
Return the “identity” of an object. This is an integer(or long integer) which is guaranteed to be 
unique and 
constant forthis object during its lifetime. Two objects with non-overlapping lifetimes may have the 
same?id()?value.
CPython implementation detail:?This is the address of the object in memory.

これから見ることができます:

1、 id(object)は、オブジェクトの「ID番号」を返します。これは一意で変更されていませんが、重複しないライフサイクルで同じID値が表示される場合があります。ここで説明するオブジェクトは、特に複合タイプ(クラス、リストなど)のオブジェクトを参照する必要があります。文字列や整数などのタイプの場合、変数のIDは変更の値に応じて変化します。

2、 オブジェクトのid値は、CPythonインタープリターのメモリ内のアドレスを表します。 (CPythonインタープリター:http://zh.wikipedia.org/wiki/CPython)

classObj():
 def __init__(self,arg):
 self.x=arg
if __name__ =='__main__':

 obj=Obj(1)
 print id(obj)    #32754432
 obj.x=2
 print id(obj)    #32754432
   
 s="abc"
 print id(s)     #140190448953184
 s="bcd"
 print id(s)     #32809848
   
 x=1
 print id(x)     #15760488
 x=2
 print id(x)

さらに、2つのオブジェクトが等しいかどうかを判断するために使用する場合、基本はこのID値です。

classObj():
 def __init__(self,arg):
 self.x=arg
 def __eq__(self,other):return self.x==other.x
   
if __name__ =='__main__':
  
 obj1=Obj(1)
 obj2=Obj(1)
 print obj1 is obj2 #False
 print obj1 == obj2 #True
   
 lst1=[1]
 lst2=[1]
 print lst1 is lst2 #False
 print lst1 == lst2 #True
   
 s1='abc'
 s2='abc'
 print s1 is s2   #True
 print s1 == s2   #True
   
 a=2
 b=1+1
 print a is b    #True
   
 a =19998989890
 b =19998989889+1
 print a is b    #False

isと==の違いは、isがメモリ内の比較であり、==が値の比較であるということです。

ナレッジポイントの拡張:

Python id()関数

説明

id()関数は、オブジェクトの一意の識別子である整数を返します。

CPythonのid()関数は、オブジェクトのメモリアドレスを取得するために使用されます。

文法

id構文:

id([object])

パラメータの説明:

object —オブジェクト。

戻り値

オブジェクトのメモリアドレスを返します。

インスタンス

次の例は、idの使用方法を示しています。

 a ='runoob'id(a)4531887632
 b =1id(b)140588731085608

これまでのところ、pythonのid関数とは何かに関するこの記事をここで紹介します。pythonのid関数とは何かについての詳細は、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。 .Cn!

Recommended Posts

pythonのid関数は何ですか
pythonの関数本体は何ですか
Pythonの用途は何ですか
python変数の範囲は何ですか
python開発の見通しは何ですか
pythonのpipの用途は何ですか
pythonの必須パラメーターは何ですか
Pythonの匿名関数とは何ですか
python3のピップパスはどこにありますか
python言語の利点は何ですか
python3はマスク描画の機能を実現します
pythonとpycharmの違いは何ですか
Pythonの基盤を統合する(4)
同期Pythonと非同期Pythonの違いは何ですか?
Python(7)の基盤を統合する
Python関数パラメータ分類の原理の詳細な説明
Python(5)の基盤を統合する
pythonのイントロスペクションとは何ですか
pythonのオブジェクト指向とは何ですか
Python変数スコープとは
Pythonの基盤を統合する(3)
ミニマリズムはPythonの魂です|バグを見つけるためのPythonコード(10)
pythonでのwheelの使用法
Pythonがメール機能を実装する方法
pythonのリスト内包表記とは何ですか
pythonに関数のオーバーロードはありますか
Pythonは中国語の4つの車輪を処理します
地主取引のPythonシミュレーション
Pythonの数字は何ですか?
Python文字列プーリングの前提
Python3.8の新機能の秘密
Pythonがタイマー機能を実装する方法
Pythonの父がMicrosoftに加わる
python accesshdfsの操作
pythonでのタプルの使用法
pythonを実行するメソッドを終了します
pythonスクリプトとWebページの違いは何ですか
pythonでのrbの意味を理解する
Pythonはスタックの構造を実装できますか?
pythonインタラクティブモードの基本を学ぶ
pythonの下部にあるロジスティック回帰
Python3クローラーでのAjaxの使用
PythonはTowerofHanoiゲームを解決します
pythonの複数のバージョンの競合を解決します
Pythonは分数シーケンスの合計を実装します
pythonでid関数を実行する方法
Python | ID番号の謎を興味深い説明
Pythonの基礎を学ぶ2日間
Python言語の本質:Itertoolsライブラリ
pythonインスタンス化オブジェクトの特定のメソッド
自習用pythonに適したシステム
Pythonのシーケンステーブルとは
pythonにヘルパー関数はありますか
pythonインストール後のディレクトリはどこにありますか
pythonはどのような作業を行うことができますか
pythonインポートライブラリの特定の方法
pythonの複数のバージョンの競合を解決します
pythonでround関数を使用する方法
Python 3.9が登場!
Pythonでzip関数を使用する方法
Pythonは学生管理システムの開発を実現します