问题标签 [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.
python - print 语句如何创建局部变量
问题在这篇文章的末尾。
第一个片段:空的局部变量字典。
输出:局部变量:{}
第二个片段:在 inner() 函数内打印并创建局部变量条目。
输出:
第三个片段:内部函数内部的 del x:
输出:
问题 :
- 在第二个片段中,打印语句如何创建局部变量。
- 如果它在内部函数中创建局部变量,为什么我无法删除它。
有人可以帮我理解这一点。
python - “从 __future__ 导入大括号”代码在哪里?
我想知道在命令上执行的代码到底是什么:
所以,由于python是开源的,我打开C:\Python27\Lib\__future__.py
并查看了。令人惊讶的是,我在那里没有发现任何处理导入braces
模块的东西。
所以,我的问题是,处理这个的代码在哪里?当我运行该命令时会发生什么?
python - 为什么我的 dict 查找不比我在 Python 中的列表查找快?
我正在将文件的每一行读入列表和字典,
我正在通过以随机顺序访问列表/字典中的每个项目来测试性能:
上述结果似乎暗示字典不如查找表的列表高效,即使列表查找是 O(n) 而字典查找是 O(1)。我已经测试了以下内容,看看 O(n)/O(1) 的性能是否属实......结果不是......
什么是交易?如果需要注意的话,我在 Ubuntu 12.04 下使用 Python 2.7.6 Anaconda 发行版,并且在 Intel MKL 下构建了 NumPy。
python - Python 字符串结尾有空格和没有空格且不可变
我了解到,在一些不可变的类中,__new__
可能会返回一个现有的实例——这就是int
,str
和tuple
类型有时对小值所做的事情。
但是为什么以下两个片段的行为不同?
最后有一个空格:
没有空格:
为什么空间会带来差异?
python - 为什么 float() 比 int() 快?
尝试一些代码并做一些微基准测试,我发现float
在包含整数的字符串上使用该函数比int
在同一字符串上使用快 2 倍。
在测试int(float('1'))
哪个运行时比裸int('1')
.
我在运行 cPython 2.7.6 的 Windows 7 和带有 cPython 2.7.6 的 Linux Mint 16 下测试了代码。
我必须补充一点,只有 Python 2 受到影响,Python 3 显示出运行时之间的较小(不显着)差异。
我知道我通过这些微基准获得的信息很容易被滥用,但我很好奇为什么函数的运行时会有如此大的差异。
我试图找到它的实现,int
但float
我在源代码中找不到它。
python - 在自身内部导入 py 文件
这是 test.py:
上面的 python 代码在系统上运行时会生成以下输出:
我很困惑为什么没有“Here 1 \n Here 3”输出的无限循环。如何证明打印 a、b 的输出是合理的?
python - 为什么 exec() 分配不工作?与 x=?
在 python3.3 中:
在 python3.3 为什么结果是这样的:
任何人都可以告诉我为什么 exec('x=2') in not equal x=2
'x=2' 和 exec('x=2') 有什么区别?
3倍
python - python包本身是一个模块吗?
我只是想了解python中的模块和包,据我所知:
A module is a file containing Python definitions and statements.
A package is a directory containing modules or other packages.
现在,我制作了一个非常简单的目录结构,如下所示:
然后,在解释器内部,我做了:
因此,Python 说,my_package 和 my_module 都是模块。包裹在哪里?包只是一个用于描述目的的术语,在核心语言中没有作为类或对象的官方身份吗?解释器的包和模块是什么?
python - 如果集合是无序的,为什么集合以相同的顺序显示?
我首先看一下Python wikibook中的 python 语言。
对于集合,提到了以下内容:
我们还可以对集合中的每个项目进行循环移动。但是,由于集合是无序的,因此未定义迭代将遵循的顺序。
给出的代码示例是:
输出:
当我运行程序时,无论我运行多少次,我都会以相同的顺序得到结果。如果集合是无序的并且迭代顺序未定义,为什么它以相同的顺序返回集合?该命令的依据是什么?
python - python对象如何存储垃圾回收的引用计数器
我试图弄清楚python如何存储对象的引用计数:
在我上面的代码片段中,一旦我创建了一个字符串对象,s
我就得到了 ref-count 28,然后当我在字典中分配它的 ref-count 时,它的 ref-count 增加了 1。我不知道为什么它以 28 开头。
所以,在这里我试图弄清楚这个值存储在哪里或 python 如何获取它。
谢谢