rust - 如何使用 PyO3 在嵌入在 Rust 代码中的 Python 代码中执行地板除法?
问题描述
我正在尝试在 Rust 中内联 Python 代码,但是当 Python 代码具有用于地板除法的运算符时,它会失败,//
就像它是 Rust 注释一样被忽略。
例如:
#![feature(proc_macro_hygiene)]
use inline_python::python;
fn main() {
python! {
print("Hi from PyO3")
foo = 37.46 // 3
print(foo)
}
}
37.46
即使它应该打印,它也会打印12.0
(37.46 除以 3 的结果)。
一个可能的解决方案是将这个除法替换为foo = math.floor(37.43 / 3)
,但如果可能的话,我宁愿不必修改 Python 代码。我也担心它可能会影响性能。
有没有办法在使用 PyO3 嵌入 Rust 代码的 Python 代码中使用地板除法运算符(或等效运算符)?
解决方案
从文档中:
// 和 //= 运算符不可用,因为它们开始注释。
解决方法:您可以改写##,它会自动转换为 //。
所以试试
#![feature(proc_macro_hygiene)]
use inline_python::python;
fn main() {
python! {
print("Hi from PyO3")
foo = 37.46 ## 3
print(foo)
}
}
推荐阅读
- kubernetes - istio 入口网关的外部 IP 保持等待状态
- java - 从 firebase 检索图像时出错
- python-3.x - 如何将客户端日期时间转换为服务器级日期时间
- ios - UIPageView 页面翻转手势在 UIScrollView 中使用时被禁用
- angular - facebook 爬虫没有使用 prerender.io 正确地爬取我的 angular 应用程序的预渲染页面
- angular - Angular 2+键绑定油门键事件
- azure-cognitive-services -
无法上传训练图像 - date - 在雪花中获取日期全名
- c++ - 带有自定义分配器的 std::vector 针对 std::vector
- python - 使用 pexpect 自动提交并推送到 github