生命周期就是一个对象从产生到消亡的一个周期过程,总体来说是一个这样的

- #以下是一个python展示生命周期的方法过程
- personCount = 0
- class Person:
- def __init__(self):
- global personCount
- print('计数 + 1')
- personCount += 1
- def __del__(self):
- global personCount
- print('计数 - 1')
- personCount -= 1
- pass
- p = Person()
- p2 = Person()
- print('当前的人的个数是%d'%personCount)
- del p
- print('当前的人的个数是%d'%personCount)

- personCount = 0
- class Person:
- def __init__(self):
- global personCount
- print('计数 + 1')
- personCount += 1
- def __del__(self):
- global personCount
- print('计数 - 1')
- personCount -= 1
- def log(self):
- print('当前的人的个数是%d' % personCount)
- return personCount
- p = Person()
- # print(p.log())
- print(p.log())
- p.log()
有很多细节点值得注意:在这段代码中,当对象 p 调用 log() 方法时,会先打印当前的人的个数,然后返回 personCount。在调用 log() 方法时,personCount 的值为 1,所以会打印出 "当前的人的个数是1"。然后,由于没有其他引用指向对象 p,当 log() 方法执行完毕后,p 对象会被当作垃圾进行回收,从而触发 __del__() 方法,打印出 "计数 - 1"。
p.log()是调用对象p的log()方法,它可能会执行一些操作并返回一个值。如果log()方法有返回值,那么p.log()将返回这个值。
print(p.log())是将p.log()的返回值作为参数传递给print()函数,然后将其打印出来。print()函数会将传入的参数转换为字符串并打印出来。
总结起来,p.log()返回log()方法的返回值,而print(p.log())将log()方法的返回值打印出来。
- class Person:
- personCount = 0
- def __init__(self):
-
- print('计数 + 1')
- Person.personCount += 1
- def __del__(self):
-
- print('计数 - 1')
- Person.personCount -= 1
- @staticmethod
- def log():
- print('当前的人的个数是%d' % Person.personCount)
- return Person.personCount
- p = Person()
- p2 = Person()
- Person.log()
静态方法就是不用传入参数,大概是这样的