當我讀大衛古德爾的Code Like a Pythonista: Idiomatic Python時,我偶然發現了下面的警告。從文章locals()如何在Python代碼中被利用?
摘錄...
print('Hello %(name)s, you have %(messages)i messages' % locals())
這是非常強大的。有了這個,你可以將 做的所有字符串格式化爲你想要的 而不用擔心 匹配插值到 的模板。
但是電力可能是危險的。 「隨着巨大的權力來了很大的責任 。」如果您使用
locals()
與 外部提供的模板字符串 ,則會將整個本地名稱空間 公開給調用方。要記住這只是 。
我想了解特定的場景中使用locals()
可能是危險的。我們讚賞任何關於如何利用代碼中locals()
的例子。謝謝!