在pyt (python工具箱):我如何使布尔参数默认为False??

6230
5
跳到解决方案
2014-09-26 06:42
MartinHvidberg
偶然的因素

在.pyt中,我可以定义如下所述的参数:

ArcGIS帮助(10.2,10.2.1和10.2.2)

我已经创建了一个布尔参数,代码片段如下:

def getParameterInfo(自我):
""" "定义参数定义"""

…其他一些参数…

# 3。覆盖
Param3 = arcpy。参数(
displayName="覆盖现有OBJ",
name =“覆盖”,
数据类型=“GPBoolean”,
parameterType = "需要",
方向=“输入”)

参数可以工作,但它的默认值为True让我很恼火,我希望它的默认值为False。

v.h。马丁

标签(3)
0荣誉
1解决方案

接受的解决方案
TimothyHales
通过 Esri显著贡献者
Esri显著贡献者

你可以这样设置默认值:

Param3 = arcpy。参数(displayName="覆盖现有OBJ",name =“覆盖”,数据类型=“GPBoolean”,parameterType = "需要",方向=“输入”)param3价值“假”


在原帖子中查看解决方案

5回复
TimothyHales
通过 Esri显著贡献者
Esri显著贡献者

你可以这样设置默认值:

Param3 = arcpy。参数(displayName="覆盖现有OBJ",name =“覆盖”,数据类型=“GPBoolean”,parameterType = "需要",方向=“输入”)param3价值“假”


curtvprice
通过 MVP尊敬贡献者
MVP尊敬贡献者

很好,蒂姆。

在帮助页面中有关于这个主题的更多细节(和示例):

在Python工具箱中定义参数设置参数的默认值

布尔值的另一个问题是关键字的使用,因此脚本工具的对话框(和arcpy)将支持关键字的选择列表。

从同一个帮助页面:

值列表可用于布尔数据类型。对于布尔数据类型,值列表包含两个值:真值和假值。真实值总是列表中的第一个值。这些值在命令行中用于指定值。

param3.filter。list = ["OVERWRITE", "NO_OVERWRITE"]

param3。价值=False

curtvprice
通过 MVP尊敬贡献者
MVP尊敬贡献者

蒂莫西·黑尔斯马丁Hvidberg-想知道:

param3。价值=“假”

因为Python bool ("False")是true(即字符串是"False"是非空的,因此它被认为是true的值。参数对象可能会将其从“False”转换为“False”,但我会检查以确定。

0荣誉
TimothyHales
通过 Esri显著贡献者
Esri显著贡献者

这是合理的担忧。我刚刚测试了这个,字符串和原始值都是正确的。

def getParameterInfo(自我):

""" "定义参数定义"""

Param2 = arcpy。参数(

displayName =“错误字符串”,

name = " FalseString ",

数据类型=“GPBoolean”,

parameterType = "需要",

方向=“输入”)

param2。价值=“假”

Param3 = arcpy。参数(

displayName =“False”,

name = "错误",

数据类型=“GPBoolean”,

parameterType = "需要",

方向=“输入”)

param3。价值=False

Param4 = arcpy。参数(

displayName =“真正的字符串”,

name = " TrueString ",

数据类型=“GPBoolean”,

parameterType = "需要",

方向=“输入”)

param4。价值="True"

Param5 = arcpy。参数(

displayName = " True ",

name = " True ",

数据类型=“GPBoolean”,

parameterType = "需要",

方向=“输入”)

param5。价值=True

Params = [param2, param3, param4, param5]

返回参数

BooleanTool.jpg

curtvprice
通过 MVP尊敬贡献者
MVP尊敬贡献者

Def execute(self, parameters, messages):

"""工具的源代码。"”“

arcpy.AddMessage ([k。价值for k in parameters])

返回

执行:Tool false false true true开始时间:星期一Sep 29 16:09:23 2014运行脚本Tool…[假,假,真,真]脚本完成工具…成功于2014年9月29日星期一16:09:23(运行时间:0.00秒)

是的,的确,所有内容都通过其字符串表示来解释,我打赌这是不区分大小写的(“false”被arcpy解释为与“false”相同)。