Python是一種動態類型語言,它支持許多編程范式來編寫清晰、簡單的代碼,并提供了許多實用的特性。其中之一就是私有變量。
class Person: def __init__(self, name, age): self.__name = name # 私有變量 self.age = age def introduce(self): print(f"Hello, my name is {self.__name}. I'm {self.age} years old.") p1 = Person("Tom", 25) p1.introduce() # 輸出:Hello, my name is Tom. I'm 25 years old. print(p1.age) # 輸出:25 print(p1.__name) # 報錯:'Person' object has no attribute '__name'
在上面的代碼中,我們使用下劃線“__”將變量標記為私有。這意味著該變量只能在類中使用,不能在類外部直接訪問。當我們嘗試訪問它時,Python會報錯。
使用私有變量的好處在于,它可以確保類的數據被完全封裝起來,防止外部代碼誤操作或不小心修改變量。另外,當我們需要將私有變量暴露在外部時,可以使用getters和setters函數來實現。
class Person: def __init__(self, name, age): self.__name = name self.age = age def getName(self): return self.__name def setName(self, name): self.__name = name def introduce(self): print(f"Hello, my name is {self.__name}. I'm {self.age} years old.") p1 = Person("Tom", 25) p1.introduce() # 輸出:Hello, my name is Tom. I'm 25 years old. print(p1.getName()) # 輸出:Tom p1.setName("Jerry") print(p1.getName()) # 輸出:Jerry
在上面的代碼中,我們添加了兩個getters和setters函數來獲取和更改私有變量__name。使用這種方式,我們可以在保持變量私有性的同時,允許外部代碼訪問它。