Python 私有方法和引用计数初讲
#私有方法的定义与调用 class Cat: def __init__(self): self.name = "" self.age = 0 def __changeage(self,_age): self.age = _age def setage(self,_age): if _age < 0: #私有方法的调用 self.__changeage(10) else: self.__changeage(_age) def __str__(self): return "age is %d ."%(self.age) tom = Cat() tom.setage(11) #tom.__changeage(13) print(tom) tom.setage(-10) print(tom)
class Dog: #__del__方法会在对象释放时由系统自动调用 def __del__(self): print("over") dog1 = Dog() #两个变量指向同一块内存地址 dog2 = dog1 #此处并非释放dog1对象,只是将dog1指向的对象的引用计数减一,对象并没有被销毁 del dog1 print("hhhhhhhhhhhhhh") #此时已经没有变量指向dog1对象了,将会释放dog1的内存,并且调用__del__方法 del dog2 print("====")
#私有属性定义 class Dog: def __init__(self): self.name = "hha" self.__age = 10 def show(self): #私有属性可以在类内部访问 print("name is %s and age is %d"%(self.name,self.__age)) dog1 = Dog() dog1.show() print(dog1.name) #print(dog1.__age) 报错,私有属性不允许在类外面访问