1
我想使用python基本库编码“1024”。在这个过程中,我尝试将一个列表[0,2,4,4]变成[0,2,8,0]。所以这是我的测试代码。这非常简单。python函数如何改变参数而不是形式参数?
def merger(a, b):
if a == b:
a += b
b = 0
numlist = [0, 2, 4, 4]
merger(numlist[0], numlist[1])
merger(numlist[1], numlist[2])
merger(numlist[2], numlist[3])
print (numlist)
所以当我尝试进行合并。我期待输出[0,2,8,0]。但是,它给了我[0,2,4,4]。我想也许是因为我只是改变了函数的局部变量a b而不是实际的参数?但是,如果我想要发生这种情况,我该怎么办?谢谢!
我想我一般都想知道如果我想要一个函数不会返回任何东西,而只是改变我作为参数传递的变量的值。我怎样才能实现它?
你可以用'global a,b'引入全局变量。但是,这通常不被认为是好的做法......通常,人们更喜欢使用'return'语句从函数中获取值。 – nostradamus
@nostradamus:是的,避免修改全局变量是很好的做法,但'global'对于OP的代码没有帮助。 –
哦,这很有趣。谢谢! –