当我执行下面的代码时,第一次打印name值时,它会打印正确的名称,即“John”。
但当我创建第二个空实例时,它仍然打印名称“John”。
预期的输出应该是,它将只打印“空名称”,因为friend_2使用了一个新的空实例。
class User:
def __init__(self,name ="Empty name"):
self.__name = name
def get_name(self):
return self.__name
def set_name(self,word):
self.__name = word
class Friend:
def __init__(self,user = User()):
self.__user = user
def get_user(self):
return self.__user.get_name()
def set_n(self,name):
self.__user.set_name(name)
friend_1 = Friend()
friend_1.set_n("John")
name_1 = friend_1.get_user()
friend_2 = Friend()
name_2 = friend_2.get_user()