Jython API复制方法似乎不起作用

问题描述 投票:0回答:1

我正在使用以下Python 2方法,其中该方法的参数是Jython对象(任务):

def getTaskPosition(task):
    """Gets the current position of the task in its container (phase or group task)"""
    index = 1
    for t in task.container.tasks:
        if task.id == t.id:
            return index
        index += 1

在我的 Python 2 脚本中,我使用 Jython API 中的 **copyTask ** 方法:

https://apidocs.digital.ai/jython-docs/#!/xl-release/22.2.x//service/com.xebialabs.xlrelease.api.v1.TaskApi

此 Jython 方法接收 3 个参数:

copyTask(String taskId, String targetContainerId, int targetPosition)

第 3 个参数(targetPosition)是从第一个方法(getTaskPosition)返回的整数

由于某种原因,在XL-Release的上下文中,输出错误是“索引超出范围。索引应该在0和2之间”,我绝对不明白为什么会发生这种情况

我尝试将 targetPosition 转换为整数,并尝试硬编码 0、1 和 2。除此之外,我不知道还能做什么

indexing python-2.x jython
1个回答
0
投票

索引从 1 而不是从 0 开始,因此超出了范围。该函数应该这样编写,以确保索引准确且索引为零:

def getTaskPosition(task):
    for index, t in enumerate(task.container.tasks):
        if task.id == t.id:
            return index

此外,当没有任务 ID 匹配时,该函数不会考虑默认值。在这种情况下,该函数将返回

None
,在代码中的某个位置,可能需要处理潜在的空值。

© www.soinside.com 2019 - 2024. All rights reserved.