Skip to main content
 首页 » 编程设计

python之奇怪的 Cython 语法

2025年05月04日15mq0036

我在浏览 quicktions 分数库时发现了这种我以前从未见过的 cython 语法:

  an, ad = (<Fraction>a)._numerator, (<Fraction>a)._denominator 

什么是(<Fractions>a)代表?这似乎是某种内存分配。但是,我不确定。

请您参考如下方法:

It's a type cast.

它向 Cython 保证该对象确实是一个 Fraction以便它可以访问 _numerator和 _denominator cdef 的属性类型。如果没有转换,它只能使用通用的 Python 查找机制来查找不允许您访问任何非 public 的属性。 cdef 的属性类型。

它不做任何检查它实际上是正确的类型,所以如果你不能 100% 确定对象实际上是分数那么你应该做 <Fraction?>而不是检查。