advanced python
文章平均质量分 63
Lone8888
这个作者很懒,什么都没留下…
展开
-
(Advanced python) __new__与__init__
【同】二者均是Python面向对象语言中的函数(协议)【异】__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是个静态方法。__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值,通常用在初始化一个类实例的时候。是一个实例方法。也就是: __new__先被调用,__init__后被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。【一些说明】1、继承自object的新原创 2021-09-30 16:38:52 · 49 阅读 · 0 评论 -
(Advanced Python) 获取属性魔法函数__getattr__与__getattribute__的区别
# python对象获取属性值时会去查找以下两个魔法函数是否被重写# __getattr__, __getattribute__# __getattr__ 在查找不到属性的时候调用# __getattribute__ 无条件调用该函数from datetime import dateclass User: def __init__(self, info): self.info = info # 属性不存在时调用 def __getattr__(self原创 2021-09-30 15:24:09 · 80 阅读 · 0 评论