Skip to main content

Python 程序员关于 .NET API 文档的提示

当前预发布的脚本接口文档是从底层 .NET 和 C# 源自动生成的。因此,文档中包含了一些 Python 程序员不熟悉的表达式。以下概述提供了一些关于如何从 Python 角度理解这些表达式的提示。

  • 接口是一种契约,它告诉实现接口的类的实例它必须准备哪些成员(方法、属性)。在 IronPython 中,您可以通过从超类继承来在一个类中实现一个或多个 .NET 接口。如果接口需要某个方法但在类定义中不可用,则抛出异常。 (这 DeviceImportFromSvn.py 示例显示了一个实现 ImportReporter 界面。)

  • .NET 中的每个参数和每个方法都是严格类型的。参数类型在参数名称前用一个空格字符分隔,方法返回值的类型在方法名称前用一个空格字符分隔。定义类(或接口)时,可以使用子类中的实例。没有返回值的方法被标记 void.

  • 您可以重载方法。因此,同名的多个方法可以存在于一个类中。但是,参数的数量或类型必须不同。 IronPython 自动处理被调用的最合适的方法重载。

  • 数据类型 int 对应于从 -2,147,483,648 到 2,147,483,647 的整数。

    数据类型 bool 对应 Python 类型 bool (TrueFalse)。

    数据类型 string 对应于 Python 类型 str 或者 unicode,它们在 IronPython 中是相同的。

    IDictionary<object, object> 数据类型对应一个普通的 Python 字典。 IronPython 自动在 Python 和 .NET 数据类型之间进行转换。

  • 当一个 T 类型继承自 IBaseObject<T>, 表示这个类型可以被其他插件扩展为额外的成员。此扩展类型作为参数或返回值的实际使用标记为 IExtendedObject<T>.

  • IEnumerable<T> 接口 T type 意味着您可以使用返回的每个 Python 序列(生成器、列表、元组等) T 类型值(或子类)。返回不兼容对象的序列,并在运行时抛出异常。

  • IList<T> 接口 T type 标识一个典型的列表,它保证只包含 type 的元素 T (或子类)。当尝试添加不兼容的对象时,会在运行时引发异常。

  • params T[] name 类型参数的 id T 对应Python机制 *name 对于变量参数列表。

  • 在 Python 中,枚举 (enum) 不作为语言结构存在。其目的是为特定目的定义精确数量的常量值,例如星期几。从 IronPython 访问 .NET 枚举可以使用“Name.Member”,例如通过 OnlineChangeOption.Try.

    在 Python 中模拟枚举也有不同的方法。

    例如,请参阅: http://pypi.python.org/pypi/enum/

  • 语法 T name { get; set; } 定义一个属性 name 作为名称和 T 作为类型。如果 set; 丢失,则该属性是只读的。在 Python 中,相应的构造是 @property 装饰师。