classDog:
def__init__(self):
#私有屬性督怜,以雙下劃線(xiàn)開(kāi)頭殴瘦,這樣就沒(méi)法以點(diǎn)的形式訪(fǎng)問(wèn)了
#這個(gè)屬性只能用self.來(lái)訪(fǎng)問(wèn),不能用dog.訪(fǎng)問(wèn)
self.__age =10
self.name ="shit"
defget_age(self):
returnself.__age
defset_age(self,age):
self.__age = age
defwant_fuck(self,money):
ifmoney >200:
self.__fuck()
else:
print("fuck yourself")
def__fuck(self):
"""私有方法号杠,同樣以雙下劃線(xiàn)開(kāi)頭"""
print("this is a private func,fuck you")
def__del__(self):
"""魔術(shù)方法,對(duì)象被真正銷(xiāo)毀之前蚪腋,真正的銷(xiāo)毀才會(huì)回調(diào)這個(gè),包括手動(dòng)或者系統(tǒng)銷(xiāo)毀"""
print("dog is dead")
def__str__(self):
return"live dog"
importtime
dog = Dog()
dog.set_age(44)
#調(diào)用私有變量
print(dog.get_age())
print(dog.name)
#調(diào)用私有方法
dog.want_fuck(300)
dog1 = dog
#實(shí)測(cè)姨蟋,這個(gè)方法會(huì)刪除對(duì)象屉凯,但是如果有多個(gè)引用,它只會(huì)刪除某個(gè)引用芬探,而不是真正銷(xiāo)毀對(duì)象
# del dog
# time.sleep(5)
# print(dog)
importsys
#計(jì)算某對(duì)象的引用個(gè)數(shù)神得,但是它本身也會(huì)使引用個(gè)數(shù)加1
count = sys.getrefcount(dog1)
print(count)