【发布时间】:2021-12-29 08:36:28
【问题描述】:
我正在构建一个项目,我试图在声明变量之前在变量中声明类的名称。
但是当我声明像这样的变量时:-
klassName = MyClass
class klassName(models.Model):
title = models.CharField(max_length=30)
那么它是用KlassName 分配的,而不是我引用它的变量。
然后我试过了:-
className = 'MyClass'
klass = type(className, (object,), {'msg': 'foobarbaz'})
x = className()
class x():
title = models.CharField(max_length=30)
它正在显示
NameError: name 'className' 未定义
我没有找到任何声明的文档。
我确实按照This 关注了。但似乎没有一个对我有用。
任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
-
你想要的输出是什么?名称动态来自字符串的模型?
-
我只是想在声明类之前将类名分配给变量。
-
但是为什么呢?如果类名来自字符串但您还没有解释为什么需要这样做,则对
type的三个参数调用是正确的方法 -
three argument call是什么意思?当然,类名将来自字符串 -
使用三个参数调用
type可以创建一个具有来自字符串的动态名称的类。但是这样做比较复杂,有必要吗?
标签: python django class django-models