為什么pyc文件也稱作字節(jié)碼文件?因為這些文件存儲的都是一些二進制的字節(jié)數(shù)據(jù),而不是能讓人直觀查看的文本數(shù)據(jù)。
python標準庫提供了用來生成代碼對應(yīng)字節(jié)碼的工具dis。dis提供一個名為dis的方法,這個方法接收一個code對象,然后會輸出code對象里的字節(jié)碼指令信息。
s=open('demo.py').read()
co=compile(s,'demo.py','exec')
importdis
dis.dis(co)
執(zhí)行上面這段代碼可以輸出demo.py編譯后的字節(jié)碼指令
10LOAD_CONST0(-1)
3LOAD_CONST1(None)
6IMPORT_NAME0(foo)
9STORE_NAME0(foo)
312LOAD_CONST2(1)
15LOAD_CONST3(u'python')
18BUILD_LIST2
21STORE_NAME1(a)
424LOAD_CONST4(u'astring')
27STORE_NAME1(a)
630LOAD_CONST5()
33MAKE_FUNCTION0
36STORE_NAME2(func)
1139LOAD_NAME1(a)
42PRINT_ITEM
43PRINT_NEWLINE
1344LOAD_NAME3(__name__)
47LOAD_CONST6(u'__main__')
50COMPARE_OP2(==)
53POP_JUMP_IF_FALSE82
1456LOAD_NAME2(func)
59CALL_FUNCTION0
62POP_TOP
1563LOAD_NAME0(foo)
66LOAD_ATTR4(add)
69LOAD_CONST2(1)
72LOAD_CONST7(2)
75CALL_FUNCTION2
78POP_TOP
79JUMP_FORWARD0(to82)
>>82LOAD_CONST1(None)
85RETURN_VALUE
以上內(nèi)容為大家介紹了python字節(jié)碼指令,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。