2009-07-02 1 views
0

通常のオブジェクトは、私が言う、Djangoのユーザは、ちょうど私が実際のアドレスを確認するにはどうすればよいPython/Djangoモデルオブジェクトのメモリアドレスはどのようにして見つけられますか?

<User:bob> 

を返し

'<__main__.A object at 0x9d78fec>' 

しかし、のようなものを見るために

o.__repr__() 

を使用することができますそのような2つのモデルオブジェクトが実際に同じオブジェクトであるかどうかを比較することができますか?

+1

repr(o)を使用しないo .__ repr __() –

答えて

7

id()は、同じ時点に存在する2つのオブジェクトに対してユニークに保証されているオブジェクトのID(通常はアドレスとして実装されています)を返します。しかし、2つのオブジェクトが同一であるかどうかを確認する明白な方法は、このために明示的に設計された演算子を使用することです:is

ie。 CPythonのために、これはオブジェクトのアドレスですが、これは私は信じている(など他の実装に異なる場合があります保証するものではありません、

a = object() 
print hex(id(a)) 

if obj1 is obj2: 
    # Objects are identical. 
1

これにはid()関数を使用します。または、同等に、単に "obj1 is obj2"と比較してください。

2

あなたは、任意のオブジェクトのIDを取得することができます鉄のpython)。同じidは同じオブジェクトを意味します。

関連する問題