>>> var = 'I need to be accessed by id!'
>>> address = id(var)
>>> print(address)
33003240
메모리에 var
의 주소를 사용할 수있는 방법이 var
의 값에 액세스하는데, id()
에서 제공 있는가?
UPD : 나는 또한이 표준 파이썬에서 수행 할 수없는 경우이 어떻게 든 파이썬의 C++ 내부를 해킹을 통해 구현 될 수 있다면, 그것은 또한, 재미있을 것, 말하고 싶은
.
UPD2 : 는 또한 알고 흥미로운 일이 될 것이다, 어떻게 변화 var
의 값. 또한
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)
같은 함수 내부에서 작동
var = 'I need to be accessed by id!'
address = id(var)
print(address)
var2 = [x for x in globals().values() if id(x)==address]
그러나 다른 사람들이 지적했듯이 :
수 없습니다. 'id()'의 반환 값은 참조가 아닙니다. cpython이 여기에 메모리 주소를 반환한다는 사실은 구현 세부 사항이며 이것을 참조로 사용하는 것은 함수의 목적이 아닙니다. –
왜 신성의 이름을 원하십니까? Martijn은 CPython에서 어떻게 든 해킹 할 수 있다고하더라도 올바르게 구현됩니다. – pcalcao
왜이 작업을 수행 하시겠습니까? – Keith