魔法方法: 是类里面的一些特殊方法,用__形式,像__init__,它可以在特定的时机自动触发,通过魔术方法,我们可以定义类自己想要的行为
# python魔术方法:
"""
__init__: 初始化魔术方法,最常见的方法
作用:给对象添加所属成员
触发:实例化对象之后触发(实例对象创建完成后,会把对象传到__init__方法里面)
self含义:就是指对象本身(可以打印self与对象查看,内存地址是一致的)
"""
class Man:
def __init__(self,name,age):
print(self) # 打印查看self含义
print("执行初始化方法")
self.sex = "男"
self.age = age
self.name = name
def sleep(self):
print("睡觉")
one = Man("pp")
print(one)
print(one.__dict__)
"""
__new__: 创建对象的魔术方法
作用:管理和控制对象的生成
触发:实例化对象时触发
cls含义:就是指当前类对象(在__new__里面表示要创造哪个类的实例对象),返回类对象的实例对象就是self,注意与self区别
"""
class Manty:
def __new__(cls,sex):
print(cls)
print("执行创建对象方法")
if sex == ("男",):
print(222)
return object.__new__(cls)
if sex == "女":
print(111)
pass
def sleep(self):
print("睡觉")
one = Manty("男")
print(one)
print(one.__dict__)
"""
两则的区别:
1.
__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是个静态方法。
__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值,通常用在初始化一个类实例的时候。是一个实例方法。
"""
网友评论