为什么传递python构造变量默认为None?

时间:2015-08-10 16:43:21

标签: python class oop default

我看到在sqlalchemy中定义一个类,流行的模式是将用户的变量(如名称,密码,电子邮件等)以默认值None传递给构造函数。 但在其他课程(如博客的帖子)中,他们没有定义默认值。

所以要明确: 为什么定义默认值以及为什么没有?

1 个答案:

答案 0 :(得分:0)

以下是您可能希望将None用作默认参数的一些原因

它实际上是您想要的默认值

这特别适用于SqlAlchemy,因为您可能有一个默认值为NULL的数据库列

您需要一个可变的默认值

使用可变的默认值(如列表)可能会导致不可预测的行为。您可以提供默认值None,以便更改可变参数的范围并避免这些问题。

您想强制使用关键字参数

在python 2中,强制所有参数成为关键字的唯一方法是将它们定义为关键字参数,没有位置参数。