相关疑难解决方法(0)

Python:函数内局部变量的生命周期(内存范围)

def some_function():
    some_dict = {'random': 'values'}
    a = some_dict['random']
    return a
Run Code Online (Sandbox Code Playgroud)
  1. 什么是some_dict在内存中创建的字典?(第一次调用函数?)

  2. 字典何时被some_dict销毁/取消分配?(当函数返回时?)

如果是这样,这是否意味着每次调用函数时都会创建字典对象?

  1. 在学习/处理python时我应该担心这些事吗?

    • 处理此类情况的最佳做法是什么?是否最好全局创建字典以避免每次调用函数时都创建和销毁字典?
  2. 我在哪里可以了解某种语言的详细信息?我尝试查看文档但找不到我要找的东西.

提前感谢您,如果您能回答上述所有4个问题,我们将不胜感激!

python

22
推荐指数
1
解决办法
6678
查看次数

是否需要删除以释放内存

我有以下代码,在其中我重新分配了几个GB的列表:

    res = self.dict_cursor.fetchall()
    res_with_offers = []

    # we add in HDBUY, SDBUY for now -- HARDCODED
    for item in res:
        for avail_code in ['HDBUY', 'SDBUY']:
            _item = deepcopy(item)
            _item['avail_code'] = avail_code
            res_with_offers.append(_item)

    del res; # <== is this line needed?
    res = res_with_offers
Run Code Online (Sandbox Code Playgroud)

我的理解是del res;,作为下一行中的变量重新分配,它将删除res内存中的初始项。它是否正确?为什么或者为什么不?

python python-3.x

2
推荐指数
1
解决办法
150
查看次数

标签 统计

python ×2

python-3.x ×1