问题标签 [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 投票
8 回答
151349 浏览

python - 查找内置 Python 函数的源代码?

有没有办法查看内置函数在 python 中是如何工作的?我的意思不仅仅是如何使用它们,还包括它们是如何构建的,排序枚举背后的代码是什么......?

0 投票
8 回答
36609 浏览

python - 为什么元组可以包含可变项?

如果元组是不可变的,那么为什么它可以包含可变项?

当一个可变项(如列表)被修改时,它所属的元组保持不可变,这似乎是一个矛盾。

0 投票
2 回答
1328 浏览

python - 设置弹出(Python)

假设您有一组:

在我目前正在阅读的书 Pro Python 中,它说 usingfoo.pop()将从该选择中弹出一个任意数字。但是……当我尝试它时,它pops 1, then 2, then 3...是随意做的,还是这只是巧合?

0 投票
2 回答
1733 浏览

python - Python:如何从变量中获取信息

好的,这可能是一个困难的问题。而且我不希望你为我做所有的辛苦工作。我只是想得到一些好的建议和我应该开始的地方。

我正在编写几个 python 程序,但调试这些程序时遇到了麻烦。所以我想创建一个简单的调试函数来记录一些事情。

这就是我使用它的方式:

我想在调试中显示此信息:

  • 调用它的函数:some_random_function
  • 定义该函数的文件名:random_function_definitios.py
  • 行号:4
  • 一些上下文:定义的全局变量和定义的局部变量。

我一直在看检查模块和框架内置对象。但我不完全确定我是否在正确的方向。

谢谢!

0 投票
5 回答
20324 浏览

python - 无序 Python 集的“顺序”

我知道 Python 中的集合是无序的,但我对它们显示的“顺序”很好奇,因为它似乎是一致的。它们似乎每次都以相同的方式出现故障:

...还有另一个例子:

我只是好奇为什么会这样。有什么帮助吗?

0 投票
2 回答
3062 浏览

python - 内置“in”运算符的 Python 源代码

in我试图在 (C) Python 源代码中找到内置运算符的实现。我搜索了内置函数源代码bltinmodule.c,但找不到该运算符的实现。我在哪里可以找到这个实现?

我的目标是通过扩展此搜索的不同 C 实现来改进 Python 中的子字符串搜索,尽管我不确定 Python 是否已经使用了我的想法。

0 投票
2 回答
650 浏览

python - python中的合成函数

在 python 中,我可以创建一个没有类语句的类:

有没有办法创建一个没有'def'的函数?据我所知...

0 投票
1 回答
1415 浏览

python - 为什么切片分配比`list.insert`更快?

这个好答案的启发,

这是一个基准:

对我来说,test2速度稍快(~10%)。为什么会这样?我希望它会慢一些,因为:

  1. 切片分配必须能够接受任何长度的迭代,因此必须更通用。
  2. 在切片分配中,我们需要在右侧创建一个新列表才能使其正常工作。

任何人都可以帮助我理解这一点吗?

(在 OS-X 10.5.8 上使用 python 2.7)

0 投票
2 回答
3162 浏览

python - Python 3 中的 super() 是如何实现的?

我想知道 Python 3 中的新 super 是如何实现的。

这个问题是在我做了一个小例子之后出现在我脑海中的,我得到了一个奇怪的错误。我正在使用Pyutilib 组件架构 (PCA),并且我已经制作了我的自定义元类来驱动另一个类的创建:

我收到以下错误:

我想知道 super() 到底是做什么的,它会在super().__init__()self.__class__self.__class__.__class__和全部PluginMeta.__class__存在时引发错误。另外“旧方式” -Pass.__init__(self)正在工作。

0 投票
1 回答
81 浏览

python - 在 Python 2.7 中跟踪期间来自 .egg 的文件的奇怪 co_filename

frame.f_code.co_filename 当通过 Python 2.7 解释器而不是eqauls 跟踪(使用 sys.settrace)python .egg 执行时,<path-to-egg>/<path-inside-egg>类似于build/bdist.linux-x86_64/egg/<path-inside-egg>

它是一个错误吗?以及如何揭示真正的彩蛋路径?

在 Python 2.6 和 Python 3 中,一切都按预期工作。