9-bits
그는 물었다 8년 전
100

문자열 변수를 사용하여 변수로 이름

&gt. 가능한 Duplicate: &gt. [어떻게 나는한다 가변으로 변수로 파이썬?] (https://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python)

텍스트 - 끝 - &lt 자동으로 삽입됨 >;!

I have a 변수 I want it 및 새로운 변수가 문자열로 지정받습니다 정의하십시오 기초로 하는 구체화하십시오.

foo = "bar"
foo = "something else"   

# What I actually want is:

bar = "something else"

JBernardo
그는 8년 전 댓글을 달았습니다
18

아마 DON& # 39, T want iqn. 왜 trying to do it?

John La Rooy
그는 8년 전 댓글을 달았습니다
4

39, no you don& 없다. 그 이유는 '실행' 때문에 ' ()' doesn& 사용해야 합니다 동네 # 39, t 지원 수정. 지역 () ',' t 지원 수정을 doesn& # 39 는 더 복잡하고 속도 및 구현 할 것이라고 때문에 결코 좋습니다

Alice Schwarze
그는 일 년 전 댓글을 달았습니다
0

내가 이 게시물을 상륙했다 찾는 방법을 사용하여 클래스를 위한 사전이란다 할당할지 인스턴스 변수 동일한 문제가 발생하는 경우, 다른 사람 없이 솔루션을 청소하십시오 exec 여기서 찾을 수 있습니다. https://stackoverflow.com/questions/8187082/how-can-you-set-class-attributes-from-variable-arguments-kwargs-in-python

답변 3 개

'실행' 에 사용할 수 있습니다.

>>> foo = "bar"
>>> exec(foo + " = 'something else'")
>>> print bar
something else
>>> 

Jack Leow
mgalgs
그는 7년 전 댓글을 달았습니다
77

이는 그가 답변됨 +1 질문 (as 나쁜거라 알 수 있기 때문에).

Clock ZHONG
그는 2년 전 댓글을 달았습니다
1

39 의 it& @mgalgs 왜 나쁜 아이디어? 이 솔루션은 모든 나쁜 영향을 미칠 수 있죠? 미리 감사합니다.

jpp
그는 2년 전 댓글을 달았습니다
1

Exec '/' 평가 '가 [것으로 케이블링의 연습] 참고 사용하는' (https://stackoverflow.com/a/1832957/9209546). 내가 만난 적이 없는 상태여서 일반적으로 하나의 사례로, 그런데 이 같은 '더 나은 대안을 도움됐네 딕트'.

niCk cAMel
그는 일 년 전 댓글을 달았습니다
0

39 이 일을 왜 doesn& 사용될 경우, t 피터 스트 유니테스테스?

사전을 사용하는 것이 아니라 더 많이 받게 될 것입니다.

my_data = {}
foo = "hello"
my_data[foo] = "goodbye"
assert my_data["hello"] == "goodbye"

dnsmkl
그는 5년 전 댓글을 달았습니다
32

문제를 해결하기 위해 보이지 않는다.

sudo
그는 4년 전 댓글을 달았습니다
5

예. 하지만 이 OP # 39, t 는 어떤 것을 wasn& 도움이 될 수 있습니다.

Ned Batchelder
그는 4년 전 댓글을 달았습니다
38

39 m, i& 오토메이티드 여전히 잘 볼 수 있습니다. 믿을 수 있는지 여부를 판단할 수 있도록 스스로 답을 같은데 스택할 오버플로입니다 판독기에서 각자의 합니다. 이 응답 변수, 변수, &quot &quot 제공하지 않습니다. 것이 사실. 하지만 제가 보증하죠 99% 를 가질 수 있는 순결한 http://support. 사전을 찾는 사람이 행복하다.

Berto 'd Sera
그는 2년 전 댓글을 달았습니다
6

그러나 그 질문을 묻는 질문에 답해야 할 수 없는 사람들이 직접 않니다 외면한 채 사전 같은 목적으로 사용할 수 있습니다

'' 스테드 사용할 수 있습니다.

name  = 'varname'
value = 'something'

setattr(self, name, value) #equivalent to: self.varname= 'something'

print (self.varname)
#will print 'something'

하지만, 이 때문에 새 객체를 알리는 합니다 수신하십시오 가변적입니다 때만 δ1 클래스뿐만 생각한다.

Francesco Boi
sudo
그는 4년 전 댓글을 달았습니다
12

올바른 뿐 아니라 작동됨 δ1 클래스뿐만.