<节> <节> <节>
<代码类=癶ljs语言java”>:模块}
,,attached_to不是没有:
,,,,,,]=__reduce__,,,,,class_dict []=<代码类=癶ljs语言java ">在祝辞祝辞类MyClass ():<节> <节> <节> <节> <>强如何动态的创建类? 强> 节> 节> 节> 节> <节>
…,,通过…
在祝辞祝辞打印MyClass __main__.MyClass
在祝辞祝辞a=MyClass
在祝辞祝辞打印一个__main__.MyClass
在祝辞祝辞MyClass.__dict__
{& # 39; __module__& # 39;: & # 39; __main__ # 39;, & # 39; __doc__& # 39;:没有}
在祝辞祝辞MyClass。一个=100
在祝辞比;MyClass.__dict__
{& # 39;一个# 39;:100 & # 39;__module__& # 39;: & # 39; __main__ # 39;, & # 39; __doc__& # 39;:没有}
在祝辞祝辞在在在MyClass。一个=200
在祝辞比;MyClass.a200
在祝辞祝辞代码>
<代码类=癶ljs语言java”> def create_class (class_name):,,,如果class_name==癕yClass":
,,,,类MyClass ():,,,,,,通过,,,,返回MyClass
,其他:
,,,,类OtherClasss ():,,,,,,,通过,,,代码,返回OtherClasss >
<代码类=癶ljs语言java ">在祝辞祝辞)& lt;类型& # 39;& # 39;
在在在在打印)& lt;类型& # 39;str # 39;
在在在在类<代码类=癶ljs语言java”> MyClass=类型(、(){})<节> <节> <节> <节> <强>类的_metaclass_属性强> 节> 节> 节> 节>
MyObject=MyClass() 代码>
class Foo(对象):,,,,,__metaclass__ =,东西…,[…]
<代码类=癶ljs语言java”>名称、瓦尔在class_attr.items ():
,,,,name.startswith ():,,,,,,lower_attr[名字]=val
,,,,:,,,,,lower_attr [name.lower ()]=,, b=my_class=MyClss()
) # False print ) # True print ) # True如何自己实现ORM? class Field(object): def __init__(self, name, column_type): self.name = name self.column_type = column_typeclass StringField(Field): def __init__(self, name, max_length): super(StringField, self).__init__(name, 'varchar(%d)' % max_length) class IntegerField(Field): def __init__(self, name): super(IntegerField, self).__init__(name, 'int')class ModelMetaclass(type): def __new__(cls, name, bases, attrs): if name == 'Model': return type.__new__(cls, name, bases, attrs) print('Found model: %s' % name) mappings = dict() for k, v in attrs.items(): if isinstance(v, Field): mappings[k] = v for k in mappings.keys(): attrs.pop(k) attrs['__mappings__'] = mappings attrs['__table__'] = name return type.__new__(cls, name, bases, attrs)(,=ModelMetaclass):
,:
,,,,,,自我(例子),,,,,除了KeyError:,,,,,,提高%键),在self.__mappings__.items, def k、v ():,,,null由ORM谈Python元类