首页 > 解决方案 > 为什么函数中的`queue = queue.append(item)`不会将传递的队列更改为`None`?

问题描述

我的教科书包括以下函数,作为使用列表在 Python 中实现队列的简单方法:

def enqueue(queue, item):
     queue = queue.append(item)
     #print(queue)
def dequeue(queue):
     return queue.pop(0)
def isEmpty(queue):
     return len(queue)==0
def createQueue():
     return []

我的问题与enqueue()功能有关。

1) 目的是queue =什么?既然list.append()不返回任何东西,为什么不把它排除在外呢?

2)当我添加print(queue)(显示为最后一行注释掉enqueue())到时enqueue(),它打印None,这是有道理的,但为什么不queue = queue.append(item)将传递给函数的原始队列/列表更改为None(因为列表是可变的),而只是改变局部变量queue

标签: pythonqueue

解决方案


推荐阅读