반응형
문자열에 지정된 변수의 이름을 가져오는 방법은 무엇입니까?
단순성을 위해 다음과 같은 작업을 수행할 수 있습니다.
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에 주의해야 합니다. 그렇지 않으면 악의적인 문자열이 지정된 경우 디스크의 전체 내용을 삭제하게 될 수 있습니다.
글로벌하지 않은 경우 정의된 네임스페이스에 액세스해야 합니다.만약 당신이 그것을 가지고 있지 않다면, 당신이 그것에 접근할 수 있는 방법이 없습니다.
Edward Loper의 답변은 변수가 현재 모듈에 있는 경우에만 작동합니다.다른 모듈에서 값을 가져오려면 다음을 사용할 수 있습니다.getattr
:
import other
print getattr(other, "name_of_variable")
https://docs.python.org/3/library/functions.html#getattr
문자열을 평가해도 안전하다는 것을 알고 있다고 가정하면, eval은 현재 컨텍스트에서 변수의 값을 제공합니다.
>>> 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
반응형
'source' 카테고리의 다른 글
가져오기 오류: win32api라는 이름의 모듈이 없습니다. (0) | 2023.07.18 |
---|---|
일치하는 키에서 값을 수집하여 딕트를 병합하는 방법은 무엇입니까? (0) | 2023.07.18 |
MS SQL Server 대신 MongoDB를 사용하는 경우의 장단점 (0) | 2023.07.18 |
Excel VBA:수식을 사용하여 여러 셀 자동 채우기 (0) | 2023.07.18 |
Python에서 문자열과 정수 연결 (0) | 2023.07.18 |