Pythonのid()関数の紹介とリストの見方(コード例)

不言
リリース: 2019-02-25 10:50:47
転載
3270 人が閲覧しました

この記事では、Python の id() 関数の概要とリストの読み取り方法 (コード例) を紹介します。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。あなた、助けます。

id(object)

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

これについて話し合う必要があります。 function まず Python の変数格納メカニズムを理解しましょう:
変数: これは動的変数であり、事前に型を宣言する必要はありません。

a = 'ABC' と記述すると、Python インタプリタは次の 2 つのことを行います:

  1. メモリ内に 'ABC' の文字列を作成します ;

  2. a という名前の変数をメモリ内に作成し、「ABC」を指します。

id(a) は、次のメモリ アドレスを読み取ります。

プログラム例

def addElement(_list):
    print(6,id(_list))
    _list.append(0)
    print(7,id(_list))
    return _list

if __name__=="__main__":
    list1=[1,2,3]
    print(1,id(list1))
    list2 = addElement(list1)
    print(2,list1)
    print(3,id(list1))
    print(4,list2)
    print(5,id(list2))
ログイン後にコピー

実行結果:

(1, 48757192L)
(6, 48757192L)
(7, 48757192L)
(2, [1, 2, 3, 0])
(3, 48757192L)
(4, [1, 2, 3, 0])
(5, 48757192L)
ログイン後にコピー

two 重要なポイント:

  1. #return ステートメントが戻った後、list1 は元の値ではなくその戻り値になります。

  2. 定義以来、変数 list1 はメモリボックスです。変数自体は常に関数に渡されるため、アドレスは変わりません。最終的には返されますが、後で新しい値が追加されます。代入メソッド a=b を使用した後、 ab のメモリアドレスは一致しています。したがって、list1、list2、および _list のメモリ アドレスは最初から最後まで変更されていません。

以上がPythonのid()関数の紹介とリストの見方(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート