Discuss / Python / 如何传递可变参数

如何传递可变参数

Topic source

欧欧不在

#1 Created at ... [Delete] [Delete and Lock User]

想要在输出移动步骤的同时打印当前ABC上各有几个盘子。 代码如下: def move(n,a,b,c,status): if n==1: print(a,'-->',c) status[a]=status[a]-1 status[c]=status[c]+1 print ('%d %d %d' %(status['A'],status['B'],status['C'])) else: move(n-1,a,c,b,status) move(1,a,b,c,status) move(n-1,b,a,c,status)

status = {'A':2,'B':0,'C':0} move(2,'A','B','C',**status) print (status)

然而结果不如人愿: A --> B 1 1 0 A --> C 1 0 1 B --> C 2 -1 1 {'B': 0, 'A': 2, 'C': 0} 看起来status作为参数传递时,在move函数内无法像C语言一样修改其本来的值。 请教这种情形该如何处理?


  • 1

Reply