定义 Python 工具箱中的工具

工具将作为类添加到 .pyt 文件。 每个工具类应至少包含 __init__execute 方法。 或者,可以使用 getParameterInfoisLicensedupdateParametersupdateMessages 方法将其他控件添加至工具行为。

用于定义工作工具类的方法

工具方法必填/可选描述

__init__

必需项

初始化工具类。

getParameterInfo

可选

定义工具的参数。

isLicensed

可选

返回工具是否获得执行许可。

updateParameters

可选

在用户每次在工具对话框中更改参数时调用。从 updateParameters 返回后,地理处理将调用它的内部验证例程。

updateMessages

可选

在从内部验证例程返回后调用。您可以检查在内部验证过程中创建的消息并根据需要进行更改。

execute

必需项

工具的源代码。

设置工具类 __init__ 方法

工具类中的 __init__ 方法是标准 Python 类初始化方法。 对于 Python 工具箱中的工具,__init__ 方法用于设置工具的属性,包括工具的 labeldescription。 工具名称由类本身的名称确定(在以下示例中,工具名称为 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__ 方法中设置以下属性:

属性描述

canRunInBackground

注:

canRunInBackground 属性仅用于 ArcGIS Desktop;该属性在 ArcGIS Pro 中不起任何作用。

category

工具所在的工具集的名称。 可通过工具集在工具箱内组织工具。

description

工具的描述。

label

标注是工具的显示名称,如地理处理窗格中所示。

stylesheet

更改用于该工具的默认样式表。 如果未设置,则将使用默认样式表。