作為解釋型指令碼語言,本質上其實根本不存在反射的問題。因為任意字串都可以解釋為**。
perl中有eval, python中同樣也有,不過細分成了eval和exec.
這個可以算是終極的反射殺器,由於威力太大,python3中在語法上做了一些限制。
允許exec匯入到區域性變數空間而不是全域性空間。
比模組的載入更近一步,我們可以把一部分**,或者說規則、模板,儲存在遠端的集中伺服器或者配置中心,然後動態通過eval載入。這樣就省去了不同機器分發**的麻煩。
極端情況下,執行的伺服器上可以只執行乙個通用的框架,核心**全部從中心伺服器獲取並注入。這個有點類似erlang的gensvr的思路了。
exec(str,globals(),_locals) #用區域性變數來注入
f=_locals['t'] #模板中的函式名只有核對意義。
python python的方法覆蓋
之前一直以為在python裡是不能使用方法覆蓋的,結果後來發現可以,這裡寫乙個簡單的例子。class a def test self print i m a class b a def test self print i m b a a b b a.test b.test 列印輸出和預想的一樣,輸出...
Python Python呼叫shell的方法
1.1 os.system command 在乙個子shell中執行command命令,並返回command命令執行完畢後的退出狀態。這實際上是使用c標準庫函式system 實現的。這個函式在執行command命令時需要重新開啟乙個終端,並且無法儲存command命令的執行結果。1.2 os.pop...
python python中的遍歷
遍歷list集合 infp 1,2,3,3,3 for m in infp print m 值得注意的是,m在此處的值是infp中的想對應的值,當我們通過del infp m 或者 infp.remove m 如下 infp 1,2,3,3,3 for m in infp if m is 3 pri...