为什么后面的lapply(gsub("package:","",search()[grep(".*(?<=package:)",search(),perl = T)]),
function(x) detach(x))
是b2.targets
并且['ddd', 'eee']
与b1.targets
具有相同的值?
b2.targets
我使用VSCode调试到class A(object):
def __init__(self):
pass
class B(object):
def __init__(self, targets=[]):
self.targets = targets
a = A()
b1 = a.B()
b1.targets.append("ddd")
print(b1.targets) # ['ddd']
b2 = a.B()
b2.targets.append("eee")
print(b2.targets) # ['ddd', 'eee']
print(b1.targets) # ['ddd', 'eee']
中,发现名为b2 = a.B()
的变量在targets
中具有值['ddd']
。这是怎么发生的? B.__init__()
附加到'ddd'
,变量b1.targets
来自哪里,为什么它的值与targets
相同?由于b1.targets
,targets
应该是[]
吗?
谢谢