我想知道类型的__new__
函数是如何工作的,它如何使用attr参数创建一个类。python如何使用__new __()函数的参数列表中的属性创建类?
例如:
class ModelMetaclass(type):
def __new__(cls, name, bases, attrs):
return type.__new__(cls, name, bases, attrs)
class User(Model):
__metaclass__ = ModelMetaclass
id = StringField(primary_key=True, ddl='varchar(50)')
email = StringField(ddl='varchar(50)')
password = StringField(ddl='varchar(50)')
class StringField(Field):
def __init__(self, **kw):
self.name = kw.get('name', None)
self.primary_key = kw.get('primary_key', False)
self.ddl= kw.get('ddl', '')
然后,您可以使用User类是这样的: U =用户(ID = 10190,名称= '迈克尔',email='[email protected]') 打印类型(u.id)
那么,__new__
函数如何将StringField转换为str?