__init__方法
- 魔法方法: 以两个_开头 和以两个_结尾的方法
- 魔法方法是python提供给我们的 由龟叔定义的好的方法 程序员直接使用即可
- 在特殊的情况下(不同的魔法方法 被调用的条件不同) 被python调用
- 在使用一个类创建一个对象成功后会执行init方法
- 当实现init方法 是因为我们程序员需要在这里面实现一些业务逻辑
- 实现一个魔法方法 -> 重写(子类继承类父类 子类实现了父类已有的方法)
__str__方法
- 作用: 是追踪对象属性信息变量 一般用于程序员调试代码
- 特点: 有且只有一个形参 那就是self
- 他必须有返回值 返回值类型为字符串
- 什么时候被python调用: 在当前监听到程序员打印这个类创建的对象的时候
def __str__(self):
return "名字:%s 毛色:%s 年龄:%d" % (self.name, self.color, self.age)
- 在我们没有实现__str__方法的时候 打印对象 会输出十六进制地址
- 如果我们实现了__str__方法 打印对象 会输出str方法中的字符串
__del__方法
def __del__(self):
print("再见!!!")
当程序的代码执行完成后 将要结束 那么会执行del huanghzong 杀死对象 系统释放内存
在当前对象的引用计数为0的时候才会执行
当有变量保存一个对象的引用,这个变量的引用计数就会+1
当用del()删除变量指向的对象时,会减少对象的引用计数。如果对象的引用计数不为1,那么会让这个对象的引用计数减1,当对象的引用计数为0的时候,则对象才会真正被删除(内存被回收)
__new__方法
class Person(object):
一个对象的生成是在new方法中完成的
def __new__(cls, *args, **kwargs):
print("__new__")
委托父类帮我们创建一个对象 然后子类返回对象
return object.__new__(cls)
构造方法(构造函数)
调用的时间: 当使用这个类创建一个对象成功 就会调用
作用: 给这个对象添加属性并赋值
def __init__(self):
print("__init__")
self.name = "小明"
追踪对象属性信息变化
# def __str__(self):
# return "名字:%s" % self.name
#
监听对象销毁后执行del方法
# def __del__(self):
# print("再见")
xiaoming = Person()
print(xiaoming)