python全局变量作为参数

python全局变量作为参数,python,global-variables,global,Python,Global Variables,Global,我在一个函数中有一个全局变量,用作另一个函数的参数。如何在第二个函数不改变它的情况下将其用作参数 例如: variable = [] def bar(x): x[2] = 4 print x def foo(): global variable variable = [1, 2, 3, 4] bar(variable) print variable 像这样运行foo()将输出: [1, 2, 4, 4] [1, 2, 4, 4] 当我想要

我在一个函数中有一个全局变量,用作另一个函数的参数。如何在第二个函数不改变它的情况下将其用作参数

例如:

variable = []

def bar(x):
    x[2] = 4
    print x

def foo():
    global variable 
    variable = [1, 2, 3, 4]
    bar(variable)
    print variable
像这样运行
foo()
将输出:

[1, 2, 4, 4]
[1, 2, 4, 4]
当我想要打印时:

[1, 2, 4, 4]
[1, 2, 3, 4]

那么,是否有一种方法可以保留原始全局变量以备将来使用,同时仍在其他函数中使用它?

如果您希望将列表的内容传递到
bar
,但不希望更改影响原始列表,请在传递列表时复制列表。您只需更改以下内容即可做到这一点:

bar(variable)
致:

[]
符号可用于创建列表的切片,这些切片是特定索引范围的副本。

[:]
特别为您提供了整个列表的副本。

如果您希望将列表的内容传递到
,但不希望更改影响原始列表,请在传递列表时复制列表。您只需更改以下内容即可做到这一点:

bar(variable)
致:

[]
符号可用于创建列表的切片,这些切片是特定索引范围的副本。

[:]
特别为您提供了整个列表的副本。

如果您希望将列表的内容传递到
,但不希望更改影响原始列表,请在传递列表时复制列表。您只需更改以下内容即可做到这一点:

bar(variable)
致:

[]
符号可用于创建列表的切片,这些切片是特定索引范围的副本。

[:]
特别为您提供了整个列表的副本。

如果您希望将列表的内容传递到
,但不希望更改影响原始列表,请在传递列表时复制列表。您只需更改以下内容即可做到这一点:

bar(variable)
致:

[]
符号可用于创建列表的切片,这些切片是特定索引范围的副本。

[:]
专门为您提供整个列表的副本。

如果您想传递列表的副本,只需使用
栏(变量[:])
。 像这样:

variable = []

def bar(x):
    x[2] = 4
    print x

def foo():
    global variable 
    variable = [1, 2, 3, 4]
    bar(variable[:])
    print variable
这将输出:

>>> foo()
[1, 2, 4, 4]
[1, 2, 3, 4]

如果要传递列表的副本,只需使用
bar(变量[:])
。 像这样:

variable = []

def bar(x):
    x[2] = 4
    print x

def foo():
    global variable 
    variable = [1, 2, 3, 4]
    bar(variable[:])
    print variable
这将输出:

>>> foo()
[1, 2, 4, 4]
[1, 2, 3, 4]

如果要传递列表的副本,只需使用
bar(变量[:])
。 像这样:

variable = []

def bar(x):
    x[2] = 4
    print x

def foo():
    global variable 
    variable = [1, 2, 3, 4]
    bar(variable[:])
    print variable
这将输出:

>>> foo()
[1, 2, 4, 4]
[1, 2, 3, 4]

如果要传递列表的副本,只需使用
bar(变量[:])
。 像这样:

variable = []

def bar(x):
    x[2] = 4
    print x

def foo():
    global variable 
    variable = [1, 2, 3, 4]
    bar(variable[:])
    print variable
这将输出:

>>> foo()
[1, 2, 4, 4]
[1, 2, 3, 4]

Idk为什么这是被否决的,但这是正确的答案,也许您应该提到变量[:]将列表分割成一个完整列表的副本。@user3467349我也不知道。谢谢你的建议。Idk为什么这被否决了,但这是正确的答案,也许你应该提到变量[:]将列表分割成一个完整列表的副本。@user3467349我也不知道。谢谢你的建议。Idk为什么这被否决了,但这是正确的答案,也许你应该提到变量[:]将列表分割成一个完整列表的副本。@user3467349我也不知道。谢谢你的建议。Idk为什么这被否决了,但这是正确的答案,也许你应该提到变量[:]将列表分割成一个完整列表的副本。@user3467349我也不知道。可能的重复可能的重复可能的重复