0
如果我使用exec
聲明爲for
聲明,就會出現錯誤。當我在Python中使用exec語句時,爲什麼會出現這個「錯誤」?
我的代碼:
exec 'for i in A_'+aws_n+'_DATI[:]:'
exec ' a_'+aws_n+'_tt += {datetime.datetime.strptime(A_'+aws_n+'_DATI[n], "%Y%m%d%H%M")}'
exec ' n += 1'
結果:
**Traceback (most recent call last):
File "aws_merge.py", line 140, in <module>
exec 'for i in A_'+aws_n+'_DATI[:]:'
File "<string>", line 1
for i in A_156_DATI[:]:
^
SyntaxError: unexpected EOF while parsing**
然而,在上面的代碼,如果您刪除exec
聲明和手動處理變量aws_n
,它將運行沒有任何問題。
for i in A_156_DATI[:]:
print n
n += 1
爲什麼沒有運行?
有幾乎從來沒有一個很好的理由使用'exec'。使用它來動態創建變量名稱,比如你的'A_156_DATI',是_definitely **不是** _的一個很好的理由。但是如果你想了解更多關於'exec'(和'eval')的信息,請看[這個優秀的答案](https://stackoverflow.com/a/29456463/4014959)。 –
的可能的複製[什麼是EVAL,EXEC之間的差異,在Python編譯?(https://stackoverflow.com/questions/2220699/whats-the-difference-between-eval-exec-and-compile-in- python) – DyZ