2 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
Python和JAVA、C#一樣都是通過(guò)虛擬機(jī)解釋執(zhí)行的,中間過(guò)程有個(gè)字節(jié)碼bytecode,不可以查看對(duì)應(yīng)的匯編代碼。 Python 有一個(gè)很好很強(qiáng)大的庫(kù):dis,里面有一個(gè)很好很強(qiáng)大的同名函數(shù):dis()。這個(gè)函數(shù)就是實(shí)現(xiàn)反匯編功能了。它能把 code object 生成可讀的代碼(類似于匯編)。 py 是 Python 的源代碼文件,純文本文件。 用 Python 可以編譯成二進(jìn)制偽代碼,也就是 bytecode。code object 實(shí)際上就是這些偽代碼 把 code object 前面加一個(gè) header,寫成文件,就是 pyc 了,也就是編譯過(guò)的 py 文件。 如果在編譯的時(shí)候加上優(yōu)化選項(xiàng),則會(huì)生成 pyo 文件,也就是優(yōu)化過(guò)的 py 文件,本質(zhì)上和 pyc 是一樣的。 可以利用一些開源的軟件把pyo和pyc反編譯成py
添加回答
舉報(bào)