首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >递归函数重复自身而不进入函数

递归函数重复自身而不进入函数
EN

Stack Overflow用户
提问于 2019-05-27 00:42:17
回答 1查看 0关注 0票数 0

POST GOT已编辑!(我很抱歉,如果它很复杂,但是你们因为假设你无法获得我的代码而给我投票)

self.Nodes是一组节点,每个节点都有一组节点(从self.Nodes中随机选择)本身存储在相关节点中。

代码语言:javascript
复制
def NodeRel(self, CurAvailables):
    for Node in CurAvailables:
        if Node in  self.availables:
            self.availables.remove(Node)

        if len(Node.relevant) == 0:
            chosen = sample(CurAvailables, randint(1, 2-len(Node.relevant)))

        elif 3 > len(Node.relevant) > 0:
            chosen = sample(CurAvailables, randint(0, 2-len(Node.relevant)))

        else:
            continue

        for item in chosen:
            item.relevant.add(Node)
            Node.relevant.add(item)
            if len(item.relevant) > 1 and item in self.availables:
                self.availables.remove(item)


    def tester(Nody):
        self.test.add(Nody)
        Nody.checked = True
        for relly in Nody.relevant:
            if not relly.checked:
                self.test.add(relly)
                relly.checked = True
                tester(relly)
            if relly.checked:
                self.test.add(relly)


    tester(self.Nodes[0])

    if len(self.test) != len(self.Nodes):
        self.NodeRel(self.Nodes.copy())

在较低的代码中我运行它:

代码语言:javascript
复制
    self.availables = set()
    self.availables.update(self.Nodes)

    # self.RelevantHandler(self.availables)
    self.NodeRel(self.availables.copy())

我希望这个函数继续运行并重复自己,直到len(self.test)和len(self.Nodes)具有相同的长度,但这是结果(在控制台或调试器中):

在此输入图像描述
在此输入图像描述

self.NodeRel()正在重复自身,而不是实际进入self.NodeRel(),我必须在第一次运行时添加它确实进入函数,这是递归不起作用

EN

Stack Overflow用户

发布于 2019-05-27 10:40:28

请问你想要完成什么,而不是说你的代码不起作用。话虽如此

这段代码:

  1. 不应该编译
  2. 什么都不做

def NodeRel("List")是无效的语法。函数定义需要参数的标识符而不是字符串文字。所以它应该是真的def NodeRel(my_list):

第二。你永远不会改变的无论是长度List1还是List2。因此,如果它们以不同的长度开始,那么这段代码将永远运行。在if语句中,您应该将一个随机元素添加到较小的列表中。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档