python - 在Python for循环中改变 float 的值

标签 python immutability

在使用 Python 脚本编写一些经验之后,Python 类型仍然令人惊讶! 在以下循环中:

import random
very_large_number = 10000000
for i in xrange(very_large_number):
    variable = random.random()
    print id(variable)

看起来我正在创建 10000000 个变量! 有没有办法只在内存中保留一个变量并仅更改其值?

最佳答案

每次创建新变量(例如variable = random.random())时,它都会被分配到内存中的新位置。因为您通过循环重新分配此变量,所以旧变量超出范围并最终被垃圾收集掉。您只是打印每个新分配的内存位置。这并不意味着打印的每个内存位置仍然处于事件状态。

关于python - 在Python for循环中改变 float 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002635/

相关文章:

Python 字符串引用

python - 缺边凹壳

python - 包含列子集的 CSV

python - pickle 一个动态参数化的子类

python - 我可以在列表理解中捕获错误以确保循环所有列表项吗

java - 使用 @Builder(toBuilder = true) 而不是 setter 会产生开销吗?

在构造函数调用的函数中定义成员时的 Java 不变性

c# - 如何处理返回结构的不变性?

Python CSV : Find identical data in two CSV files and copy corresponding data

scala - 用不可变对象(immutable对象)模拟继承+可变状态