1. 程式人生 > >python--類-例項-繼承中變數的id是否變化

python--類-例項-繼承中變數的id是否變化

'''
注: 估計這麼亂的程式碼只有我自己能看。通過這段程式碼的驗證,證明了在類和例項的相對關係中,
把變數儲存為字串,數字,在各個類、例項之間變換的時候,變數的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)