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

Why pass python construct variables with default None?

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

所以要清除: 为什么定义默认值以及为什么 None ?

以下是您可能希望使用 None 作为默认参数的几个原因

其实就是你想要的默认值

这尤其适用于 SqlAlchemy,因为您可能有一个默认值为 NULL

的数据库列

你想要一个可变的默认值

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

您想强制使用关键字参数

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