python - 为什么 refs 在 Python 中每个新对象都会增加 2?

标签 python cpython python-internals

定义一个新对象后,交互环境中的 refs 数增加 2 对我来说有点奇怪。我只创建了一个对象,不是吗?

>>> v
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'v' is not defined
[41830 refs]
>>> v = "v"
[41832 refs]

最佳答案

您的作业是通过在 globals() 字典中创建一个条目来实现的,该条目以 v 为键,以 "v" 为值.这是两个引用(一个用于键,一个用于值),尽管在这种情况下它们可能都引用相同的字符串 "v"

关于python - 为什么 refs 在 Python 中每个新对象都会增加 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4991744/

相关文章:

python - 通过普通类、数据类和命名元组创建对象的有趣性能

python - 为什么从过滤器创建集合比创建列表或元组快得多?

python - 为什么list()和[]之间的getsizeof结果不同?

python - 如何在Python中对itertools石斑鱼数组进行排序

java - 将 NumPy 和 Cpython 与 Jython 一起使用

python - 哪些类型的 Python 对象是用引用初始化的,哪些不是?

传递 Python 对象时,Objective-C 中的 Python-C Api 包装器因调用 __getattr__ 而崩溃

python - 将 Eye Gaze(俯仰和偏航)转换为屏幕坐标(人在看哪里?)

标签自动调整大小的 Python PIL 图像

python - 在 Selenium,python 中使用 XPath 时出错