我正在尝试投资python缓存系统。并希望在生成has_many :download_links
def download_json
self.as_json(
only: [:id],
methods: [:downloadlink_list]
)
end
def downloadlink_list
self.download_links.pluck(:url)
end
文件后验证其哈希值。
.pyc文件具有3个字段:0th-4th字节是幻数,5th-8th字节是时间戳,9th-end字节是编组对象。
我做过一些实验,可以断定具有确切版本的python的同一.pyc
文件的.pyc
是相等的(不包括时间戳),并且独立于os或体系结构(Intel,ARM)。>
如果删除__pycache_目录并运行.py
文件,我将得到相同的.py
文件。但是如果我要运行.pyc
我会得到一个简短而又不同的$ python3 -m compileall ./
文件。
.pyc
# demo.py
print('importing inc')
import inc
# inc.py
print('inc Module Loaded')
有什么方法可以使用compileall模块并获得与运行时相同的froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ rm -R __pycache__/
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ python3 demo.py
importing inc
inc Module Loaded
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ hexdump ./__pycache__/inc.cpython-36.pyc
0000000 0d33 0a0d 96d0 5cef 0027 0000 00e3 0000
0000010 0000 0000 0000 0000 0200 0000 4000 0000
0000020 7300 000c 0000 0065 0064 0183 0001 0164
0000030 0053 0229 117a 6e69 2063 6f4d 7564 656c
0000040 4c20 616f 6564 4e64 0129 05da 7270 6e69
0000050 a974 7200 0002 0000 0272 0000 fa00 2f33
0000060 6f68 656d 662f 6f72 6b69 2f65 614b 6172
0000070 626d 2f61 6373 6972 7470 7673 6c61 6469
0000080 7461 726f 702d 7479 6f68 2f6e 6e69 2e63
0000090 7970 08da 6d3c 646f 6c75 3e65 0003 0000
00000a0 0073 0000 0000
00000a5
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ rm -R __pycache__/
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ python3 demo.py
importing inc
inc Module Loaded
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ hexdump ./__pycache__/inc.cpython-36.pyc
0000000 0d33 0a0d 96d0 5cef 0027 0000 00e3 0000
0000010 0000 0000 0000 0000 0200 0000 4000 0000
0000020 7300 000c 0000 0065 0064 0183 0001 0164
0000030 0053 0229 117a 6e69 2063 6f4d 7564 656c
0000040 4c20 616f 6564 4e64 0129 05da 7270 6e69
0000050 a974 7200 0002 0000 0272 0000 fa00 2f33
0000060 6f68 656d 662f 6f72 6b69 2f65 614b 6172
0000070 626d 2f61 6373 6972 7470 7673 6c61 6469
0000080 7461 726f 702d 7479 6f68 2f6e 6e69 2e63
0000090 7970 08da 6d3c 646f 6c75 3e65 0003 0000
00000a0 0073 0000 0000
00000a5
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ rm -R __pycache__/
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ python3 -m compileall inc.py
Compiling 'inc.py'...
froike@laptop-roi-x260:~/Pakpaka/scriptsvalidator-python$ hexdump ./__pycache__/inc.cpython-36.pyc
0000000 0d33 0a0d 96d0 5cef 0027 0000 00e3 0000
0000010 0000 0000 0000 0000 0200 0000 4000 0000
0000020 7300 000c 0000 0065 0064 0183 0001 0164
0000030 0053 0229 117a 6e69 2063 6f4d 7564 656c
0000040 4c20 616f 6564 4e64 0129 05da 7270 6e69
0000050 a974 7200 0002 0000 0272 0000 fa00 6906
0000060 636e 702e da79 3c08 6f6d 7564 656c 033e
0000070 0000 7300 0000 0000
0000078
文件?
谢谢!