等于登录python是通过值或引用传递

时间:2015-08-18 13:05:34

标签: python pass-by-reference equals pass-by-value

我遇到的情况是,在我不知情的情况下,我的价值观会发生变化。

def randomizer(task):
maintask = task
x = 0
k = 1
while 1:
    x += 1
    if x > len(task):
        break
    if k == 0:
        task.pop(x)
        x -= 1
        k = 1
    else:
        k = 0
#task.reverse()
#task = task + maintask
print("task ----- ", task)
print("maintask ----- ", maintask)

上面给出的是我的python脚本。我的期望是“任务”与“maintask”不同。但两者都给了我相同的价值。下面给出的是输出。

  

任务----- [(9,'CR12345'),(8,'CR12346'),(3,'CR63943'),(4,'IM46667'),(2,'这是SE   COND')]

     

maintask ----- [(9,'CR12345'),(8,'CR12346'),(3,'CR63943'),(4,'IM46667'),(2,'这是SE   COND')]

我认为这是因为“=”基于通过引用传递而工作。我需要传递更改父变量后不应更改的值(此处为“task”)

0 个答案:

没有答案