Discuss / Python / 我对类的创建过程和对象创建过程的理解

我对类的创建过程和对象创建过程的理解

Topic source
class User(Model):
    # 定义类的属性到列的映射:
    id = IntegerField('id')
    name = StringField('username')
    email = StringField('email')
    password = StringField('password')
    # 这些属性(列对象model类型)看起来是属于类的,其实只是起提示作用,因为在类的生成过程中(ModelMetaclass)已经删除了这些属性,
    # 并将列对象(model类型)按属性名保存在一个内部的dict中
    # u = User(id=12345, name='Michael', email='test@orm.org', password='my-pwd')
    # 创建类的实例时,其实又重新添加了同名的对象属性(int,str类型),因为属性类型都不一样了
    # 调用save函数生成sql语句时,需要列名和列的值,使用相同的key,从dict中取出列对象(model类型),获得name,从属性中取出列值(int,str类型)

  • 1

Reply