下面是一個例子類:正在受控條件下使用'exec'是否存在安全威脅?
from datetime import datetime
class Article:
published = datetime.now()
for propname in "year month day hour minute second".split():
exec "%s = property(lambda self: self.published.%s)"%(propname, propname)
del propname
正如你所看到的,我使用exec
優化多個property()
對象的創建。我經常讀到使用exec
很糟糕,它是您的程序中的一個安全漏洞。在這種情況下,是嗎?
+1。幾乎總是有'eval()'和'exec()'的替代方法。 –
它可以很容易地在類裝飾器中添加類屬性而不是實例屬性。 – agf