程序去掉【:】后可以运行。
但是当试图将列表的副本传递给函数时,程序报错。
因为你是定义函数,而不是调用函数
所以,在定义的时候,不能写 msgs[:] 直接写成 msgs即可,调用时写 msgs[:]
python 没这种语法。python 中的对象传递,默认都是传引用的。如果你需要一个 List 对象的副本,那建议重新复制一次这个对象:
li = [1, 2, 3, 4]
send_messages(list(li))
其中 list(l)
就是对原来的列表 li
变量进行一次 shallow copy。
def send_massages(msgs):
sent_massages = []
for i in range(len(msgs)):
delete_sent_massages = msgs.pop()
print(delete_sent_massages)
sent_massages.insert(0, delete_sent_massages)
print(sent_massages)
def show_massages(msgs):
for msg in msgs:
print(msg)