老规矩,先上代码:
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
# File : 生命周期方法.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date : 2019/11/10
class Person:
__personCount = 0 #定义一个类方法,并且私有化,确保安全性。用于计数实例化了多少个对象
def __init__(self): #实力初始化时调用这里的方法
print("计数 +1")
Person.__personCount +=1
def __del__(self):#实力被释放时调用这里的方法
print("计数 -1")
self.__class__.__personCount -=1
@staticmethod #定义一个静态方法
def log():
print(f"当前的人数是{Person.__personCount}")
@classmethod #定义一个类方法
def log1(cls):
print(f"当前的人数是{cls.__personCount}")
Person.personCount = 100 #尝试外部改变类方法(安全性测试)
p = Person()
p2 = Person()
Person.log()
del p
Person.log()
Person.log1()
运行结果如图: