Cri*_*spy 11 python variables copy
有没有办法复制变量,这样当变量'a'的值发生变化时,它会将自身复制到变量'b'?
例
a='hello'
b=a #.copy() or a function that will make a copy
a='bye'
# Is there a way to make
# 'b' equal 'a' without
# doing 'b=a'
print a
print b
Run Code Online (Sandbox Code Playgroud)
我在使用Tkinter库时遇到问题,我有一个已存储在列表中的checkbutton,我正在尝试获取它所拥有的变量.
但是需要大约5行代码才能到达变量.
mgi*_*son 12
您正在探索Python如何处理引用.赋值只是绑定对右侧对象的引用.所以,这有点微不足道:
a = 'foo'
b = a
print b is a #True -- They *are the same object*
Run Code Online (Sandbox Code Playgroud)
但是,只要你这样做:
b = 'bar'
b is a #False -- they're not longer the same object because you assigned a new object to b
Run Code Online (Sandbox Code Playgroud)
现在,对于可变的对象,这变得非常有趣:
a = [1]
b = a
b[0] = 'foo'
print a #What?? 'a' changed?
Run Code Online (Sandbox Code Playgroud)
在这种情况下,a
更改因为b
和a
引用相同的对象.当我们改变b
(我们可以做,因为它是可变的)时,可以看到同样的变化,a
因为它们是同一个对象.
因此,要回答您的问题,您不能直接执行此操作,但如果您使用可变类型(如列表)来存储您携带的实际数据,则可以间接执行此操作.
这是一件非常重要的Python代码时要了解,这是不是有很多语言的工作方式,所以是值得认真思考/研究,直到你真正了解它.