IronPython 是用纯 c 编写的

IronPython 是使用托管的 .net(C#)代码完整编写的。因此所有 builtin python 方法和库(例如 next()int() 等)都在 .net 中写入。

此示例显示 len() 的实现,用于不同类型的列表(仅少数):

....

public static int len([NotNull]List/*!*/ list) {
    return list.__len__();
}

public static int len([NotNull]PythonTuple/*!*/ tuple) {
    return tuple.__len__();
}

public static int len([NotNull]PythonDictionary/*!*/ dict) {
    return dict.__len__();
}

….

如果我们需要其他类型来计算长度,请将它们添加到 Builtin.cs 中,它将自动生效。