Python中的所有東西都是對象,包括函數(shù)和類。與其他語言不同,傳遞對象(或說是傳遞引用)就是傳遞指針。這意味著當(dāng)你聲明一個變量并將其分配給對象時,該變量實際上保存的是該對象的內(nèi)存地址。
當(dāng)我們將對象作為參數(shù)傳遞給函數(shù)時,實際上傳遞的是該對象的地址。因此,當(dāng)在函數(shù)內(nèi)部更改該對象時,該更改會在函數(shù)外部也得到反映,因為它們引用同一個地址。對于類的實例也是如此。
class Person: def __init__(self, name): self.name = name def change_name(person): person.name = "new_name" p = Person("original_name") print(p.name) #輸出: "original_name" change_name(p) print(p.name) #輸出: "new_name"
上述代碼會將 Person類的實例 p傳遞給函數(shù) change_name()。函數(shù)會更改 p實例的名字屬性,導(dǎo)致 p實例的名字從 "original_name"變?yōu)?"new_name"。
由于它是在相同的地址引用的,故它在函數(shù)外依然保持更改。這是一種非常方便的方式,可以輕松地共享數(shù)據(jù)并確保數(shù)據(jù)的一致性。
上一篇python 類方法詳解
下一篇python 類庫方法