AST(抽象語(yǔ)法樹(shù))
AST抽象語(yǔ)法樹(shù)根本不是 Python 獨(dú)有的東西它是所有現(xiàn)代高級(jí)編程語(yǔ)言C, C, Java, Go, Rust, Python編譯和解釋過(guò)程的“絕對(duì)核心”和“通用語(yǔ)言”。**1. 所有的語(yǔ)言第一步都是“造樹(shù)”無(wú)論是 C 語(yǔ)言還是 Python計(jì)算機(jī)都不認(rèn)識(shí)人類寫的文本代碼。所以它們的第一步都是詞法分析Lexical Analysis和語(yǔ)法分析Syntax Analysis。C 語(yǔ)言gcc 編譯器把int a b 1;解析成 C 語(yǔ)言規(guī)范的 AST 樹(shù)。Python解釋器把a(bǔ) b 1解析成 Python 規(guī)范的 AST 樹(shù)。在這個(gè)階段大家做的事情是一模一樣的把線性的文本變成結(jié)構(gòu)化的樹(shù)。2. 分道揚(yáng)鑣造完樹(shù)之后干什么這是 C 語(yǔ)言和 Python 最大的區(qū)別也是它們底層架構(gòu)的不同走向C 語(yǔ)言編譯型語(yǔ)言AST 是為了“翻譯成機(jī)器碼”C 語(yǔ)言生成 AST 后編譯器會(huì)進(jìn)行極其復(fù)雜的語(yǔ)義分析、優(yōu)化比如死代碼消除、常量折疊最后把這棵 AST 樹(shù)翻譯成底層的匯編語(yǔ)言再變成機(jī)器碼.exe或二進(jìn)制文件。AST 在這里是通往機(jī)器碼的“橋梁”。Python解釋型語(yǔ)言AST 是為了“動(dòng)態(tài)執(zhí)行”Python 生成 AST 后它不會(huì)去翻譯成機(jī)器碼而是直接把 AST 轉(zhuǎn)換成 Python 虛擬機(jī)CPython能看懂的字節(jié)碼Bytecode然后由解釋器一行行執(zhí)行。AST 在這里是通往字節(jié)碼的“橋梁”。3. 為什么 Python 的 AST 讓你覺(jué)得“更高級(jí)”既然 C 語(yǔ)言也有 AST為什么我們?cè)?Python 里能隨便拿 AST 出來(lái)玩比如 Pytest 的斷言重寫而 C 語(yǔ)言里卻很少見(jiàn)因?yàn)镃 語(yǔ)言是靜態(tài)語(yǔ)言而 Python 是動(dòng)態(tài)語(yǔ)言在 C 語(yǔ)言里AST 在編譯階段就被“消耗”掉了變成了死板的二進(jìn)制機(jī)器碼。你沒(méi)法在 C 語(yǔ)言運(yùn)行的時(shí)候去修改它的 AST。在 Python 里AST 是運(yùn)行時(shí)Runtime可訪問(wèn)的Python 官方直接把a(bǔ)st模塊暴露給了開(kāi)發(fā)者。這意味著你可以在 Python 程序運(yùn)行的時(shí)候去讀取、修改、甚至動(dòng)態(tài)生成 AST 樹(shù)。這就是為什么 Python 能做到那么多極其靈活的“元編程Metaprogramming”和“魔法”。

相關(guān)新聞

如何實(shí)現(xiàn)網(wǎng)盤直鏈下載:九大平臺(tái)免客戶端下載終極指南

如何實(shí)現(xiàn)網(wǎng)盤直鏈下載:九大平臺(tái)免客戶端下載終極指南

如何實(shí)現(xiàn)網(wǎng)盤直鏈下載:九大平臺(tái)免客戶端下載終極指南 【免費(fèi)下載鏈接】Online-disk-direct-link-download-assistant 一個(gè)基于 JavaScript 的網(wǎng)盤文件下載地址獲取工具?;凇揪W(wǎng)盤直鏈下載助手】修改 ,支持 百度網(wǎng)盤 / 阿里云盤 / 中國(guó)移動(dòng)云盤 / 天翼云…

2026/8/2 3:44:40 閱讀更多
Labelme JSON轉(zhuǎn)Mask:語(yǔ)義分割數(shù)據(jù)預(yù)處理核心技術(shù)與實(shí)戰(zhàn)

Labelme JSON轉(zhuǎn)Mask:語(yǔ)義分割數(shù)據(jù)預(yù)處理核心技術(shù)與實(shí)戰(zhàn)

1. 項(xiàng)目概述:從標(biāo)注文件到像素級(jí)掩碼的轉(zhuǎn)換在計(jì)算機(jī)視覺(jué),特別是語(yǔ)義分割任務(wù)中,我們經(jīng)常遇到一個(gè)看似簡(jiǎn)單卻至關(guān)重要的環(huán)節(jié):如何將標(biāo)注工具(如Labelme)生成的JSON文件,轉(zhuǎn)換成模型訓(xùn)練所需的Mask…

2026/8/2 6:15:00 閱讀更多
低成本打造7英寸副屏:硬件選型、軟件配置與效率提升全攻略

低成本打造7英寸副屏:硬件選型、軟件配置與效率提升全攻略

1. 項(xiàng)目概述:為什么你需要一塊副屏?如果你和我一樣,每天面對(duì)著一塊主顯示器,同時(shí)開(kāi)著代碼編輯器、瀏覽器、通訊軟件、終端和性能監(jiān)控面板,那么你一定經(jīng)歷過(guò)那種在十幾個(gè)窗口間瘋狂切換的焦躁感。主屏幕再大&#xff0c…

2026/8/2 6:15:00 閱讀更多
Spring AI 系列(三):RAG 開(kāi)發(fā)必知——兩種 Advisor 到底怎么選?附完整代碼實(shí)現(xiàn)

Spring AI 系列(三):RAG 開(kāi)發(fā)必知——兩種 Advisor 到底怎么選?附完整代碼實(shí)現(xiàn)

Spring AI 系列(三):RAG 開(kāi)發(fā)必知——兩種 Advisor 到底怎么選?附完整代碼實(shí)現(xiàn) Spring AI 提供了對(duì)常見(jiàn) RAG 流程的開(kāi)箱支持,通過(guò) Advisor API 實(shí)現(xiàn),向量數(shù)據(jù)庫(kù)存儲(chǔ)著AI模型所不知道的數(shù)據(jù),當(dāng)用…

2026/8/2 6:15:00 閱讀更多
技術(shù)博客內(nèi)容聚合平臺(tái)實(shí)踐:OpenClaw 如何采集公開(kāi)優(yōu)質(zhì)內(nèi)容并生成每日技術(shù)內(nèi)參

技術(shù)博客內(nèi)容聚合平臺(tái)實(shí)踐:OpenClaw 如何采集公開(kāi)優(yōu)質(zhì)內(nèi)容并生成每日技術(shù)內(nèi)參

一、引言在信息爆炸的時(shí)代,技術(shù)從業(yè)者每天需要面對(duì)海量的技術(shù)博客、官方文檔、行業(yè)資訊和開(kāi)源項(xiàng)目動(dòng)態(tài)。如果逐一打開(kāi)各個(gè)博客站點(diǎn)、論壇和 Newsletter,不但耗時(shí)巨大,而且很難區(qū)分內(nèi)容質(zhì)量的高低,往往會(huì)陷入“每天閱讀上百篇文章&…

2026/8/2 6:15:00 閱讀更多
SortMeRNA安裝與實(shí)戰(zhàn):從環(huán)境配置到rRNA污染過(guò)濾全流程指南

SortMeRNA安裝與實(shí)戰(zhàn):從環(huán)境配置到rRNA污染過(guò)濾全流程指南

1. 項(xiàng)目概述:為什么SortMeRNA是rRNA污染過(guò)濾的“瑞士軍刀”在宏基因組或轉(zhuǎn)錄組數(shù)據(jù)分析的流水線里,拿到原始測(cè)序數(shù)據(jù)后的第一步清洗工作,往往不是去除低質(zhì)量堿基,而是剔除那些“不請(qǐng)自來(lái)”的核糖體RNA序列。這些rRNA序列&#xff…

2026/8/2 6:15:00 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多