什么是周期?关于python

2024-10-02 00:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用奇妙的eric4ide来编写python,它有一个内置的工具叫做“cyclops”,它显然是在寻找循环。在运行它之后,它会给我一堆粗体的红色字母,声明我的代码中存在大量的循环。问题是输出几乎无法辨认,我不可能通过读取它的输出来理解什么是周期。我在网上浏览了几个小时,似乎找不到一篇博文。当循环堆积到某一点时,探查器和调试器停止工作:(。在

我的问题是什么是循环,我如何知道我在做一个循环,如何避免在python中生成循环。谢谢。在


Tags: 工具代码声明字母内置调试器小时红色
2条回答

循环(或“引用循环”)是两个或多个相互引用的对象,例如:

alist = []
anoth = [alist]
alist.append(anoth)

或者

^{pr2}$

当然,这些都是非常简单的例子,只有两个项目的周期;现实生活中的例子往往更长,更难发现。没有什么灵丹妙药告诉你你刚刚做了一个周期,你只需要注意它。gc模块(其特定任务是对无法访问的周期进行垃圾收集)可以帮助您诊断现有的周期(当您设置适当的调试标志时)。当您确实需要(例如)子级和父级相互了解而不创建引用循环时,weakref模块可以帮助您避免构建循环(只将两个相互引用中的一个放入弱引用或代理,或者使用模块提供的方便的弱字典容器)。在

所有独眼巨人都会告诉你,你的代码中是否有对象通过其他对象链引用它们自己。这在python中曾经是一个问题,因为垃圾回收器无法正确处理这些类型的对象。从那时起,这个问题在很大程度上得到了解决。在

底线:如果你没有观察到内存泄漏,在大多数情况下,你不需要担心独眼巨人的输出。在

相关问题 更多 >

    热门问题