Python関数 - id関数

高洛峰
高洛峰オリジナル
2016-10-17 14:49:351310ブラウズ

id(object)

関数: 返されるのは、一意で変更されないオブジェクトの「ID カード番号」ですが、重複しないライフサイクルでは同じ ID 値が表示される場合があります。ここで説明するオブジェクトは、特に複合型オブジェクト (クラス、リストなど) を指します。文字列や整数などの型の場合、値が変化すると変数の ID も変化します。

Python バージョン: Python2.x Python3.x

Python 英語公式ドキュメント説明:

オブジェクトの「アイデンティティ」を返します。これは、このオブジェクトに対して一意かつ定数であることが保証されている整数 (または長整数) です。ライフタイムが重複しない 2 つのオブジェクトは、同じ id() 値を持つ可能性があります。

CPython 実装の詳細: これはメモリ内のオブジェクトのアドレスです。


注: オブジェクトの id 値はCPython では インタプリタはメモリ内のアドレスを表します (Python の C 言語で実装されたインタプリタ)。


コード例:

class Obj():  
    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)         #15760464

2 つのオブジェクトが等しいかどうかを判断するために is を使用する場合、基礎となるのは ID 値です

is と == の違いは、is はメモリ内での比較であるのに対し、== は値の比較


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。