9

重複の可能性:
id() でオブジェクトを取得しますか?

>>> var = 'I need to be accessed by id!'
>>> address = id(var)
>>> print(address)
33003240

の値にアクセスするために、varによって提供されるメモリ内のアドレスを使用する方法はありますか?id()var

UPD:
また、これが標準の Python で実行できない場合は、Python の C++ 内部をハッキングすることで何らかの方法で実装できれば、それも興味深いでしょう。

UPD2:の値を変更 する方法も知っておくと興味深いでしょうvar

4

1 に答える 1

9

あなたの場合のみの解決策は次のとおりです。

var = 'I need to be accessed by id!'
address = id(var)
print(address)
var2 = [x for x in globals().values() if id(x)==address]

次のような関数内からも機能します

def get_by_address(address):
    return [x for x in globals().values() if id(x)==address]

var = 'I need to be accessed by id!'
address = id(var)
print(address)
var2 = get_by_address(address)

しかし、他の人が指摘したように:まず、ニーズにより適したより良いソリューションがないことを確認してください

于 2013-01-10T12:06:13.960 に答える