python 元类编程(已完结)
上海_彭彭
这个作者很懒,什么都没留下…
展开
-
python:深度理解元类
提出问题:如何在一个类创建一个类呢?首先我们的实现方式是这样的, 看下以下代码:class A : def create_class(self,user): if user=="company": class Company: def __str__(self): retu...原创 2018-11-06 19:34:08 · 283 阅读 · 0 评论 -
python3:很简单但经典例子介绍__getattr__ 魔法函数。
这个魔法函数的意义是 当实例化对象调用属性不存在的时候再调用,】如果不重写这个函数 系统就报错,说明系统最后的兜底工作。class A: def __init__(self): passa=A()print(a.age)打印结果:AttributeError: 'A' object has no attribute 'age'这个情况下我们就可以应用 ...原创 2018-11-04 22:47:54 · 2078 阅读 · 0 评论 -
python3:通过实例讲解元类实现_ORM01
ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。明确下我们的需求:我们要创建一个类,并把类映射到数据库的一张表,并校验数据库每个字段的取值.目的:脱离SQL 语句.class User: name=CharField(db_column="...原创 2018-11-07 12:30:22 · 194 阅读 · 0 评论 -
python3:__new__和__init__魔法函数区别
这两个魔法函数是最容易混淆,面试官也经常会问到的知识点。咱们掌握区别以及原理,就可以自信说:来呀,我不怕.class User: def __new__(cls, *args, **kwargs): print("new") def __init__(self,name): self.name=name print("init...原创 2018-11-05 11:49:16 · 2915 阅读 · 0 评论 -
python3:属性描述符(__get__,__set__,__delete__)
我先问大家个问题。如何对属性进行校验呢 比如有个要保证 age 属性 它只能是int类型且大小处于0到100之间?第一直觉就是用get 和set 方法如下:1.基本的调用 set 和get 方法class Student: def __init__(self): pass def get(self): return self.age ...原创 2018-11-05 22:51:49 · 3993 阅读 · 0 评论