慕容3067478
这是Python文档必须说的None:types.NoneType的唯一值。当没有将默认参数传递给函数时,通常不使用None来表示缺少值。在版本2.4中更改:分配为None是非法的,并引发SyntaxError。注意不能重新分配名称None和debug(分配给它们,即使作为属性名称也会引发SyntaxError),因此可以将它们视为“ true”常量。让我们确认None第一个的类型print type(None)print None.__class__输出量<type 'NoneType'><type 'NoneType'>基本上,NoneType数据类型类似于int,float等等。您可以在8.15中查看Python中可用的默认类型列表。types —内置类型的名称。并且,None是NoneType类的实例。因此,我们可能要创建None自己的实例。让我们尝试一下print types.IntType()print types.NoneType()输出量0TypeError: cannot create 'NoneType' instances很明显,无法创建NoneType实例。我们不必担心价值的独特性None。让我们检查一下我们是如何None内部实现的。print dir(None)输出量['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']除了__setattr__,所有其他均为只读属性。因此,我们无法更改的属性None。让我们尝试为添加新属性 Nonesetattr(types.NoneType, 'somefield', 'somevalue')setattr(None, 'somefield', 'somevalue')None.somefield = 'somevalue'输出量TypeError: can't set attributes of built-in/extension type 'NoneType'AttributeError: 'NoneType' object has no attribute 'somefield'AttributeError: 'NoneType' object has no attribute 'somefield'上面看到的语句分别产生这些错误消息。这意味着我们不能在None实例上动态创建属性。让我们检查一下分配东西时会发生什么None。根据文档,它应该抛出SyntaxError。这意味着,如果我们向分配某些内容None,则该程序将完全不会执行。None = 1输出量SyntaxError: cannot assign to None我们已经确定None 是...的实例 NoneTypeNone 不能有新属性的现有属性None无法更改。我们无法创建的其他实例 NoneType我们甚至不能通过None给它分配值来更改对它的引用。因此,如文档中所述,None可以真正将其视为true constant。很高兴知道None:)