问题标签 [python-internals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
368 浏览

python - 在 python 中覆盖 stderr 的效果

以下代码使python崩溃:

我知道没有真正的理由编写这样的代码,但我想知道它为什么会崩溃。
我的第一个猜测是print命令失败是因为stdout被覆盖,然后,在尝试引发异常时,又引发了另一个异常,因为stderr也被覆盖了。

因此,它在尝试引发异常时会发生堆栈溢出。

谁能解释这里背景中真正发生的事情?
这是堆栈溢出吗?

0 投票
1 回答
1950 浏览

python - 为什么 Python 处理 '1 is 1**2' 与 '1000 is 10**3' 不同?

这个关于缓存小整数和字符串的问题的启发,我发现了以下我不理解的行为。

我以为我理解这种行为: 1000 是要缓存的。1000 和 10**3 指向 2 个不同的对象。但我错了:

因此,也许 Python 对计算的处理与“普通”整数不同。但这个假设也不正确:

如何解释这种行为?

0 投票
4 回答
1775 浏览

python - Python's int function performance

Does Python's built-in function int still try to convert the submitted value even if the value is already an integer?

More concisely: is there any performance difference between int('42') and int(42) caused by conversion algorithm?

0 投票
1 回答
1626 浏览

python - 为什么None是python中最小的?

我从 python None 学到的东西:

None is frequently used to represent the absence of a value

当我放入一个列表并用数字和字符串排序时。我得到以下结果,这意味着它是最小的数字?

撤销:

正常排序:

python 排序函数如何与 None 一起使用?

0 投票
2 回答
425 浏览

python - 复合对象上的python垃圾收集器行为

如果仍然引用了复合对象的某些部分,python 垃圾收集器是否会清理它?

例如

A[0]被垃圾回收吗?

有没有办法通过代码确认相同?

0 投票
1 回答
59 浏览

python - Python:名称评估如何在运行时执行

当名称未定义和未绑定时,我们可以在运行时看到NameError和。UnboundLocalError但目前尚不清楚名称评估是如何在运行时发生的?我假设如下:

考虑代码片段的示例

bar函数被调用时,我们创建了新的执行框架。将此帧表示为bar_framebar_frame.f_local字典中不包含任何元素。但bar_frame.f_back.f_locals包含 4 个名称-值对。所以

我的理解:我们有以下名称评估算法:

  1. 试图namecurrentframe.f_locals

    1.1 如果currentframe.f_locals对应一个全局命名空间并且没有找到合适的名字则抛出NameError

    1.1 如果找到合适的名称并且有界则返回currentframe.f_locals[name]

    1.2 如果找到合适的名字并且是无限抛出UnboundLocalName错误。

  2. 试图namecurrentframe.f_back.f_locals

请检查我的理解。

0 投票
2 回答
8953 浏览

python - self = None 有什么作用?

我正在阅读传入的源代码asyncio。请注意,在方法的末尾,有一个self = None语句。它有什么作用?

我认为它会删除实例,但以下测试不建议这样做:

0 投票
3 回答
346 浏览

python - 为什么调用 locals() 会添加引用?

我不明白以下行为。

  • 如何locals()产生新的参考?
  • 为什么 gc.collect 不删除它?我没有分配locals()任何地方的结果。

X

输出是:

0 投票
2 回答
2256 浏览

python - Python:多重赋值与单独赋值速度

我一直在寻求从我的代码中挤出更多的性能;最近,在浏览这个 Python wiki 页面时,我发现了这个说法:

多重赋值比单独赋值慢。例如“x,y=a,b”比“x=a; y=b”慢。

好奇,我测试了它(在 Python 2.7 上):

我重复了几次,以不同的顺序等,但多次分配片段的表现始终比单个分配好至少 30%。显然,我的代码中涉及变量赋值的部分不会成为任何重大瓶颈的根源,但我的好奇心还是被激起了。当文档另有说明时,为什么多次分配明显比单独分配快?

编辑:

我测试了对两个以上变量的分配并得到了以下结果:

趋势似乎或多或少是一致的;任何人都可以复制它吗?

(CPU:英特尔酷睿 i7 @ 2.20GHz)

0 投票
1 回答
551 浏览

python - 为什么 locals() 返回一个奇怪的自引用列表?

所以我使用 locals() 来获取函数中的一些参数。效果很好:

标准的东西。但现在让我们介绍一个列表推导:

诶?为什么要插入自引用?