반응형
문자열에서 이름이 주어진 변수의 값을 얻는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
- 가변 개수의 변수를 생성하려면 어떻게합니까? 13 답변
간단하게하기 위해 이것은 내가하고 싶은 일의 제거 된 버전입니다.
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
타다!
반응형
'IT Share you' 카테고리의 다른 글
autosetuprebase 대 autosetupmerge (0) | 2020.11.29 |
---|---|
배열의 모든 값을 설정하는 가장 빠른 방법은 무엇입니까? (0) | 2020.11.29 |
Github 창 : 커밋 실패 : 새 커밋을 생성하지 못했습니다. (0) | 2020.11.29 |
RSA 키를 authorized_keys 파일에 추가하는 방법은 무엇입니까? (0) | 2020.11.29 |
.NET에서 아이스 캔디를 고정하는 방법 (클래스를 변경 불가능하게 만들기) (0) | 2020.11.28 |