classDog:
def__init__(self):
#私有屬性,以雙下劃線開頭,這樣就沒法以點(diǎn)的形式訪問了
#這個(gè)屬性只能用self.來訪問,不能用dog.訪問
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):
"""私有方法,同樣以雙下劃線開頭"""
print("this is a private func,fuck you")
def__del__(self):
"""魔術(shù)方法,對(duì)象被真正銷毀之前,真正的銷毀才會(huì)回調(diào)這個(gè),包括手動(dòng)或者系統(tǒng)銷毀"""
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í)測,這個(gè)方法會(huì)刪除對(duì)象,但是如果有多個(gè)引用,它只會(huì)刪除某個(gè)引用,而不是真正銷毀對(duì)象
# del dog
# time.sleep(5)
# print(dog)
importsys
#計(jì)算某對(duì)象的引用個(gè)數(shù),但是它本身也會(huì)使引用個(gè)數(shù)加1
count = sys.getrefcount(dog1)
print(count)