python--类-实例-继承中变量的id是否变化

版权声明:本文为博主原创文章,转载请注明来源 https://blog.csdn.net/qq_26948675/article/details/83895625
'''
注: 估计这么乱的代码只有我自己能看。通过这段代码的验证,证明了在类和实例的相对关系中,
把变量保存为字符串,数字,在各个类、实例之间变换的时候,变量的id是变化的,
把变量保存为列表和字典的时候,id地址是不变的。id地址变与不变用于确认是否是同一份数据,
看一下这个变量是否是全局变量
'''
class InitParam(object):
    def __init__(self):
        self.name={}
        print(id(self.name))
        
    def set_name(self,name,score):
        self.name[name]=score
        
    def get_name_id(self):
        print(id(self.name))
        
params=InitParam()
params.name    
params.get_name_id()
    
class pyquantbook():
    def __init__(self,params):
        self.name=params.name
        print(id(self.name))
    def set_name(self,name,score):
        self.name[name]=score
        
    def get_name_id(self):
        print(id(self.name)) 

book=pyquantbook(params)
book.set_name('guowenjie',60)
book.name
book.get_name_id()

class A():
    def __init__(self,book):
        self.name=book.name
    def set_name(self,name,score):
        self.name[name]=score
        
    def get_name_id(self):
        print(id(self.name)) 
    
a=A(book)
print(a.name)
print(id(a.name))
book.set_name('yunjinqi',60)

猜你喜欢

转载自blog.csdn.net/qq_26948675/article/details/83895625