함수 내부에서 python exec 키워드를 어떻게 사용할 수 있습니까?함수 내부에서 exec 실행
답변
기능의 성능과 유지 보수성이 손상 될 것입니다. 그러나 자신의 코드를 너무 많이 악화시키려는 경우 Python은 "충분한 밧줄로 발을 쏠 수 있습니다"(:-) :
>>> def horror():
... exec "x=23"
... return x
...
>>> print horror()
23
는 조금 덜 끔찍한 물론, 특정 DICT에 exec
하는 것입니다 :
>>> def better():
... d = {}
... exec "x=23" in d
... return d['x']
...
>>> print better()
23
이 적어도 첫 번째 방법의 네임 스페이스 오염을 방지 할 수 있습니다.
사전을 실행하면 제대로 작동합니다. Thans –
예.
class A:
def __init__(self):
self.a1 = ''
self.a2 = ''
def populate():
att1 = raw_input("enter a1: ")
att2 = raw_input("enter a2: ")
my_object = A()
eval("my_obj.a1 = att1")
eval("my_obj.a2 = att2")
if eval("my_obj.a2") == 2:
print "Hooray! the value of a2 in my_obj is 2"
희망이 정확하게 당신에게 문제를주고 무엇
eval과 exec, Python의 두 가지. eval ("my_obj.a1 = att1")은 구문 오류 (eval에 의해 제기 됨)를 제공합니다 (대신 exec를 시도하십시오). – Ponkadoodle
'eval()'은 파이썬에서만 표현식을 허용하고 할당은 표현식이 아니라 명령문입니다. –
죄송합니다. 나는 나쁜 소식을 분명히했다. 나는 지금 오류를보고 나는 바보 이동을했다는 것을 깨닫는다. 나는 시험 스트레스가 내게 다가 왔음에 틀림 없다. 사과. – inspectorG4dget
을하는 데 도움이? 지금까지 뭐 해봤 어? –
당신이하려고하는 것은 무엇입니까? – ghostdog74