#私有方法的定义与调用
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) 报错,私有属性不允许在类外面访问