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
(True
和False
)。数据类型
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
类型参数的 idT
对应Python机制*name
对于变量参数列表。在 Python 中,枚举 (
enum
) 不作为语言结构存在。其目的是为特定目的定义精确数量的常量值,例如星期几。从 IronPython 访问 .NET 枚举可以使用“Name.Member”,例如通过OnlineChangeOption.Try
.在 Python 中模拟枚举也有不同的方法。
语法
T name
{ get; set; }
定义一个属性name
作为名称和T
作为类型。如果set;
丢失,则该属性是只读的。在 Python 中,相应的构造是@property
装饰师。