在什么情况下嵌套类很有用,它们在Django中被大量使用,
class SignUpForm(forms.ModelForm):
class Meta:
model = SignUp
fields = ['full_name','email']
但我认为使用其他结构可以实现同样的目标,那么当我们使用嵌套类时我们会得到什么呢?
由于
答案 0 :(得分:0)
Django很不寻常。
你看,Django大量使用名为metaclass的幕后功能。在Python 2中,嵌套类是为元类提供不严格属于类本身的信息的最干净,最直接的方法,例如表单所基于的模型。
在Python 3中,元类可以接受其他关键字参数,如下所示:
class Foo(Bar, baz=qux):
...
这些参数直接传递给元类构造函数,并且比嵌套类更清晰。
我不知道Django是否计划采用这种语法,但出于向后兼容的原因,嵌套类语法不太可能完全消失。