日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python调用rust_在 Rust 代码中编写 Python 是种怎样的体验?

發布時間:2023/12/19 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用rust_在 Rust 代码中编写 Python 是种怎样的体验? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為轉載摘要,完整版請移步:

https://mp.weixin.qq.com/s/YT_HNFDCQ_IyocvBkRNJnA

以下為譯文:

大約一年前,我發布了一個名為inline-python(https://crates.io/crates/inline-python)的Rust類庫,它允許大家使用python!{ .. }宏輕松地將一些Python混合到Rust代碼中。在本系列中,我將從頭展示開發此類庫的過程。

-1-

預覽

如果不熟悉inline-python類庫,你可以執行以下操作:

fn?main()?{

let?who?=?"world";

let?n?=?5;

python!?{

for?i?in?range('n):

print(i,?"Hello",?'who)

print("Goodbye")

}

}

它允許你將Python代碼直接嵌入Rust代碼行之間,甚至直接在Python代碼中使用Rust變量。

我們將從一個比這個簡單得多的案例開始,然后逐步努力以達到這個結果(甚至更多!)。

-2-

運行Python代碼

首先,讓我們看一下如何在Rust中運行Python代碼。讓我們嘗試使第一個簡單的示例生效:

fn?main(){

println!("Hello?...");

run_python("print(\"...?World!\")");

}

我們可以使用std::process::命令來運行python可執行文件并傳遞python代碼,從而實現run_python,但如果我們希望能夠定義和讀回Python變量,那么最好從使用PyO3庫開始。

PyO3為我們提供了Python的Rust綁定。它很好地包裝了Python C API,使我們可以直接在Rust中與各種Python對象交互。(甚至在Rust中編寫Python庫,但這是另一個主題。)

它的Python::run功能完全符合我們的需求。它將Python代碼作為&str,并允許我們使用兩個可選的PyDicts 來定義范圍內的任何變量。讓我們試一試吧:

fn?run_python(code:?&str)?{

let?py?=?pyo3::Python::acquire_gil();?//?Acquire?the?'global?interpreter?lock',?as?Python?is?not?thread-safe.

py.python().run(code,?None,?None).unwrap();?//?No?locals,?no?globals.

}

$?cargo?run

Compiling?scratchpad?v0.1.0

Finished?dev?[unoptimized?+?debuginfo]?target(s)?in?0.29s

Running?`target/debug/scratchpad`

Hello?...

...?World!

看,這就成功了!

-3-

基于規則的宏

在字符串中編寫Python不是最便捷的方法,所以我們嘗試改進它。宏允許我們在Rust中自定義語法,所以讓我們嘗試一下:

fn?main()?{

println!("Hello?...");

python!?{

print("...?World!")

}

}

宏通常是使用macro_rules!進行定義,您可以基于標記和表達式之類的內容使用高級“查找和替換”規則來定義宏。(有關macro_rules!的介紹請參見Rust Book中有關宏的章節,有關Rust宏所有的細節都可以在《Rust宏的小書》中找到。)

完整版請移步:https://mp.weixin.qq.com/s/YT_HNFDCQ_IyocvBkRNJnA

總結

以上是生活随笔為你收集整理的python调用rust_在 Rust 代码中编写 Python 是种怎样的体验?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本xxxx色 | 人妻天天爽夜夜爽一区二区三区 | 打屁股疼的撕心裂肺的视频 | 极品少妇在线观看 | 亚洲一区av在线 | 天天操天天干天天爽 | 日本黄色不卡 | 日韩骚片| 99热久| 爱逼综合| 欧美一级特黄aaaaaa大片在线观看 | 精品国产xxx | 秋霞视频在线观看 | 日本欧美在线播放 | 国产精品久久久久久久久久东京 | 国产成人精品一区 | 精国产品一区二区三区a片 国产精品第一 | 成人乱人乱一区二区三区一级视频 | 无码人妻一区二区三区在线视频 | 午夜黄色在线观看 | 久久久久久久久久久影院 | 在厨房拨开内裤进入毛片 | 国产区久久 | 电影91久久久| 国产精品一区二区三区在线播放 | 超碰人人在线 | 青青草.com | 亚洲青涩网 | 中文亚洲av片不卡在线观看 | 国产人成视频在线观看 | av生活片| 亚洲激情小视频 | 三级在线看中文字幕完整版 | 午夜视频久久久 | 草草草在线 | 国产www在线 | 亚洲综合首页 | 日韩精品福利在线 | 一色桃子juy758在线播放 | 97神马影院| 最近中文字幕在线mv视频在线 | 欧美性受xxx黑人xyx性爽 | 国产97自拍 | 一区二区三区免费高清视频 | 亚洲人成网站999久久久综合 | 日韩欧美中文字幕一区 | 96日本xxxxxⅹxxx17| aaaaa级少妇高潮大片免费看 | 国产第99页 | 色婷婷婷婷 | 国产精品免费久久久久 | 亚洲精品久久久久久久久久久 | 日本视频三区 | 成年人网站黄色 | 青娱乐自拍视频 | 欧美青草视频 | 亚洲啊啊啊啊啊 | 国产www在线| 国精品人妻无码一区二区三区喝尿 | 好吊色免费视频 | 国产av人人夜夜澡人人爽 | 欧美日韩大陆 | 欧美午夜在线观看 | 国产精品嫩草影院精东 | av一级二级| 秋霞影院午夜伦 | 日本高清视频网站 | 一区二区三区欧美日韩 | 国产第七页| 国产亚洲久一区二区 | 国产婷婷色一区二区在线观看 | 99成人国产精品视频 | 日韩精品视频在线免费观看 | 国产伦精品一区二区三区精品 | 看片网站在线观看 | av在线资源观看 | 日韩在线电影一区 | 国产区二区 | 毛片免| 日韩av中文字幕在线免费观看 | 天堂在线资源8 | 亚洲欧美在线视频 | 国产区在线视频 | 伊人av网| 日本成人在线免费 | 国产高清久久 | 九一亚洲精品 | 日韩午夜一区 | 久久九九热 | 欧美日韩亚洲一区二区三区 | 魔性诱惑 | 精品免费国产一区二区三区四区 | 国产精品极品白嫩在线 | 污视频免费在线观看 | 精品视频久久久 | 国产香蕉一区二区三区 | 久99久视频 | 成人国产av一区二区三区 | 操干网|