【发布时间】:2016-11-21 06:43:49
【问题描述】:
我想知道为什么我们要为模型类的参数指定名称,例如 django 中的CharField。例如这样。
first_name = models.CharField(max_length=40, blank=True)
为什么不
first_name = models.CharField(40, True)
在java中我们这样调用new charField(40,true)。如果它们是默认参数,我们在构造函数的定义中指定它们(在java中)。
我们为什么要写在这里。请解释一下。
【问题讨论】:
-
特别是,Python 不像 Java 那样具有方法重载,因此您不能拥有具有不同参数的同一方法的多个版本。由于
max_length和blank不是前两个位置参数,因此您必须使用models.CharField(None, None, False, 40, False, True),必须显式匹配前面位置参数的每个默认值。您可以看到为什么首选关键字参数。
标签: python django python-3.x django-models