类的内置方法(魔法方法):
凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,类的内置方法,会在满足某种条件下自动触发。
1.1__new__
__new__:在___init__触发前,自动触发。调用该类时,内部会通过__new__产生一个新对象
__init__:在调用类时自动触发。通过产生的对象自动调用__init__()
class Demo(object):
# 条件: __new__: 在__init__触发前,自动触发。
def __new__(cls,*args,**kwargs):
print('此处是__new__方法的执行')
#python内部通过object调用的__new__实现产生一个空的对象 --->内存地址
return object.__new__(cls,*args,**kwargs)
#条件:__init__在调用类时自动触发
def __init__(self):
print('此处是__init__方法的执行')
Demo()
1.2__getattr__
__getattr__: 在通过 “对象.属性” 获取属性时,若 “属性没有” 时触发。
class Demo(object):
# x =10
def __getattr__(self,item):
print('此处是__getattr__方法的执行')
print(item)
#return 想要返回的值
return 123
obj1 = Demo()
print(obj1.x)
#执行结果:
此处是__getattr__方法的执行
x
123
1.3__getattribute__
条件: __getattribute__: 在通过 “对象.属性” 获取属性时,无论