我在浏览 quicktions 分数库时发现了这种我以前从未见过的 cython 语法:
an, ad = (<Fraction>a)._numerator, (<Fraction>a)._denominator
什么是(<Fractions>a)代表?这似乎是某种内存分配。但是,我不确定。
请您参考如下方法:
它向 Cython 保证该对象确实是一个 Fraction以便它可以访问 _numerator和 _denominator cdef 的属性类型。如果没有转换,它只能使用通用的 Python 查找机制来查找不允许您访问任何非 public 的属性。 cdef 的属性类型。
它不做任何检查它实际上是正确的类型,所以如果你不能 100% 确定对象实际上是分数那么你应该做 <Fraction?>而不是检查。
