工具将作为类添加到 .pyt 文件。 每个工具类必须至少包含 __init__ 和 execute 方法。 或者,可以使用 getParameterInfo、isLicensed、updateParameters 和 updateMessages 方法将控件添加至工具行为。
用于定义工作工具类的方法
工具方法 | 必填或可选 | 描述 |
---|---|---|
__init__ | 必填 | 初始化工具类。 |
可选 | 定义工具的参数。 | |
可选 | 返回工具是否具备运行许可。 | |
可选 | 在用户每次在工具对话框中更改参数时调用。 从 updateParameters 返回后,地理处理将调用它的内部验证例程。 | |
可选 | 在从内部验证例程返回后调用。 可以检查根据内部验证创建的消息,并根据需要对其进行更改。 | |
必填 | 工具的源代码。 | |
可选 | 当 execute 方法完成,然后处理输出并将其添加到显示后调用。 |
设置工具类 __init__ 方法
工具类中的 __init__ 方法是标准 Python 类初始化方法。 对于 Python 工具箱中的工具,__init__ 方法用于设置工具的属性,包括 label 和 description 属性。 工具名称由类本身的名称确定(在以下示例中,工具名称为 CalculateSinuosity)。
__init__ 方法用于确定诸如标注和描述等工具属性。 以下创建了一个名为 CalculateSinuosity 的工具。
class CalculateSinuosity(object):
def __init__(self):
self.label = "Calculate Sinuosity"
self.description = "Sinuosity measures the amount that a river meanders within its valley, " + \
"calculated by dividing total stream length by valley length."
注:
在命名 Python 工具箱工具类时,Python 语法规则将强制执行大多数地理处理约定。 但是,请避免在工具类名称中使用下划线,因为在 ArcGIS Server 中运行工具时,这些下划线会导致错误。
可在工具的 __init__ 方法中设置以下属性:
属性 | 描述 |
---|---|
category | 工具所在的工具集的名称。 可通过工具集组织工具箱内的工具。 要嵌套工具集,请使用连续的反斜杠分隔其名称,例如:self.category = "Toolset 1\\Toolset 2"。 |
description | 工具的描述。 |
label | 标注是工具的显示名称,如地理处理窗格中所示。 |