【发布时间】:2019-07-22 18:58:52
【问题描述】:
我尝试使用结构动态创建一个类:
class TestFabric():
@classmethod
def CreateEntity(self, name):
classname = name + 'Test'
return type(classname, (models.Model,), {
'Attr1':models.CharField(),
'Attr2':models.CharField(),
})
pass
当我调用函数时
TestFabric.CreateEntity("Person")
创建了 PersonTest 类。然后我可以创建这个类的实例等等。 这等于
class PersonTest(models.Model):
Attr1: models.CharField()
Attr2: models.CharField()
但是如果我必须在这个类中定义一个方法呢? 例如:
class PersonTest(models.Model):
Attr1:
Attr2:
def SomeMethod(self, Atrr1, Attr2):
smth here
return ....
问题是: 我如何在这个类动态定义一个方法? 请注意,我必须为类添加此方法,而不是为它的具体实例。
【问题讨论】:
标签: python-3.x django-2.0