IT Share you

문자열에서 이름이 주어진 변수의 값을 얻는 방법은 무엇입니까?

shareyou 2020. 11. 29. 12:35
반응형

문자열에서 이름이 주어진 변수의 값을 얻는 방법은 무엇입니까?


이 질문에 이미 답변이 있습니다.

간단하게하기 위해 이것은 내가하고 싶은 일의 제거 된 버전입니다.

def foo(a):
    # I want to print the value of the variable
    # the name of which is contained in a

PHP에서이 작업을 수행하는 방법을 알고 있습니다.

function foo($a) {
    echo $$a;
}

global $string = "blah"; // might not need to be global but that's irrelevant
foo("string"); // prints "blah"

이 작업을 수행 할 방법이 있습니까?


전역 변수 인 경우 다음을 수행 할 수 있습니다.

>>> a = 5
>>> globals()['a']
5

다양한 "eval"솔루션에 대한 참고 : 특히 평가중인 문자열이 잠재적으로 신뢰할 수없는 소스에서 온 경우 eval에주의해야합니다. 그렇지 않으면 디스크의 전체 내용 또는 이와 유사한 것을 삭제하게 될 수 있습니다. 악의적 인 문자열을받은 경우.

(글로벌이 아닌 경우 정의 된 네임 스페이스에 대한 액세스 권한이 필요합니다. 해당 네임 스페이스가 없으면 액세스 할 수있는 방법이 없습니다.)


Edward Loper의 대답은 변수가 현재 모듈에있는 경우에만 작동합니다. 다른 모듈에서 값을 얻으려면 다음을 사용할 수 있습니다 getattr.

import other
print getattr(other, "name_of_variable")

https://docs.python.org/2/library/functions.html#getattr


>>> string = "blah"
>>> string
'blah'
>>> x = "string"
>>> eval(x)
'blah'

>>> x=5
>>> print eval('x')
5

타다!

참고 URL : https://stackoverflow.com/questions/9437726/how-to-get-the-value-of-a-variable-given-its-name-in-a-string

반응형