Python:存储自变量的值

问题描述 投票:-1回答:1

我将变量self.data_counter存储在另一个变量prev_counter_data中时遇到问题。我根本无法存储当前值-我分配给self.data_counter的变量总是以某种方式具有完全相同的值。

class SimpleSwitch(app_manager.RyuApp):

    def __init__(self, *args, **kwargs):
        super(SimpleSwitch, self).__init__(*args, **kwargs)
        self.data_counter = {}
        self.monitor_thread = hub.spawn(self._monitor)

    def _monitor(self):
        timer = 0
        prev_data_counter = self.data_counter
        while True:
            hub.sleep(5)
            timer = timer + 5
            # assign current values to self.data_counter in func()
            func()
            # compare current values to previous values

            if (timer%60) == 0:
                prev_data_counter = self.data_counter

任何想法我的思想缺陷在哪里?为什么prev_data_counter总是等于self.data_counter

python variables updates store self
1个回答
1
投票

[当您执行self.prev_data_counter = self.data_counter时,我们说它们是同一对象。

尝试:

self.prev_data_counter = copy.copy(self.data_counter)

并添加复印包:import copy

另请参见:https://docs.python.org/2/library/copy.html

© www.soinside.com 2019 - 2024. All rights reserved.