99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-10-23 閱讀量: 853
python錯誤解析(二)

代碼如下:

>>> from math import sqrt  
>>> exec "sqrt = 1"
>>> sqrt(4)

Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
sqrt(4)
TypeError: 'int' object is not callable

【錯誤分析】exec語句最有用的地方在于動態(tài)地創(chuàng)建代碼字符串,但里面存在的潛在的風險,它會執(zhí)行其他地方的字符串,在CGI中更是如此!比如例子中的sqrt = 1,從而改變了當前的命名空間,從math模塊中導入的sqrt不再和函數(shù)名綁定而是成為了一個整數(shù)。要避免這種情況,可以通過增加in <scope>,其中<scope>就是起到放置代碼字符串命名空間的字典。

復制代碼

代碼如下:

>>> from math import sqrt  
>>> scope = {}
>>> exec "sqrt = 1" in scope
>>> sqrt(4)
2.0
0.0000
1
關注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據
推薦帖子