我添加了一个字段,并希望按代码块计算字段,但代码块不起作用,我想。在输出shp文件中,所有值都显示为0.以下是代码:
# An input polygon feature class
inputFC = "D:/Delete/NewLineFeature.shp"
gp.AddField_management(inputFC, "lenclass", "SHORT")
# Calculation is based on a custom getclass definition
expression = "getclass(float(!shape.length!))"
codeblock = """\
def getclass(length):
if length <= 600.0:
return 1
if length > 600.0 and length <= 6000.0:
return 2
else:
return 3
"""
gp.CalculateField_management(inputFC, "lenclass", expression, "PYTHON", codeblock)`
答案 0 :(得分:2)
代码块中的缩进是计算字段工具代码块(arcgis 10)中的2个空格缩进。
def getclass(length):
if length <= 600.0:
return 1
if length > 600.0 and length <= 6000.0:
return 2
else:
return 3
答案 1 :(得分:0)
Python中的三引号字符串会自动继续到后续行,直到匹配的结束引号,但它们也只包含您给它们的任何空格。您的代码可能会有一些缩进问题。
答案 2 :(得分:0)
Python使用空格来描述代码块,而你的字符串则没有。试试这个:
codeblock = """\
def getclass(length):
if length <= 600.0:
return 1
if length > 600.0 and length <= 6000.0:
return 2
else:
return 3
"""