函数中定义的变量 - Python

时间:2014-03-21 21:17:00

标签: python function variables

我正在运行此代码:https://dpaste.de/RiAP

如您所见,变量linespecificpayload仅在此函数中使用,但如果我检查ID,则在每个函数调用中都是相同的。

我似乎无法弄清楚如何在每次调用时刷新其值。对id(linespecificpayload)的调用都返回相同的值。任何建议都会受到欢迎。

此外,代码是我在一两个小时内写的。所以可能不是最有效的。

1 个答案:

答案 0 :(得分:0)

原因是您要将全局对象分配给linespecificpayload,因此引用保持不变。

如果您想创建filespecificpayload字典的副本,可以:

  • 使用filespecificpayload.copy()。这将创建dict的副本,但复制前存在的值将被共享,以便id(filespecificpayload[key]) == id(filespecificpayload.copy()[key])

  • 使用copy.deepcopy()

    >>> from copy import deepcopy
    >>> d = deepcopy(filespecificpayload)
    >>> id(d[key]) == id(filespecificpayload[key])
    False