微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

返回函数不起作用 - new_node 值正在内部打印但返回时未返回它

如何解决返回函数不起作用 - new_node 值正在内部打印但返回时未返回它

def function():
    res = get_nodes(api_server_call,token)
    newnode = ""
    #endTime = ""
    for node in res:
        if (node['state'] == "booting" or node['state'] == "queued"):
            newnode = node['name']
            print("new node is : " + newnode)
            return newnode
    if(newnode == ""):
        function()


new_node = function() >this is main function from where above function is called
print(new_node)

上面的函数返回我正在启动或排队的新节点我正在打印它但在返回时它返回无

解决方法

返回 None 是当您不在函数末尾放置 return 语句时的默认行为。如果函数有多种结束方式,则必须通过返回来结束每个编码路径,或者在其末尾放置一个。如果您的 newnode 不为空,则您什么都不做,因此返回默认值 None 。可以肯定的是,在每个代码路径的末尾放置一个有效的 return 语句更安全:

所以你在函数的最后一行忘记了额外的“return newnode”:

def function():
    res = get_nodes(api_server_call,token)
    newnode = ""
    #endTime = ""
    for node in res:
        if (node['state'] == "booting" or node['state'] == "queued"):
            newnode = node['name']
            print("new node is : " + newnode)
            return newnode

    if(newnode == ""):
        return function()

    return newnode


## main part of the code:
new_node = function() ##>this is main where function is called
print(new_node)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。