使用Python的clear()方法后了解结果

时间:2013-08-09 11:00:12

标签: python python-3.x

我不明白下面代码的结果。为什么结果为None

 m = {(1,2):1.0, (5,4):0.5, (3,4):0.75}

print(m.clear())
result: **None**

但如果我写作

   m.clear()
    print(m)
   result : **{}**

我还有其他结果。

2 个答案:

答案 0 :(得分:4)

您正在打印m.clear()的返回值,该值返回None。它会返回None,因为.clear()方法会清除字典

按照惯例,默认Python类型上的任何方法都会在适当的位置改变可变结构,返回None。例如,同样适用于list.sort()set.add()

您的第二个示例不会打印m.clear()的返回值。清除后,它会打印空字典。

答案 1 :(得分:4)

print(m.clear())打印调用m.clear()返回的值。 print m打印对象m;显然有两个非常不同的东西,所以它们产生不同的输出并不令人惊讶。

字典类型的documentation只是简单地说clear

  

从字典中删除所有项目。

这就是它的作用。它没有被记录为返回任何内容,而所有方法的所有文档都返回了一些内容,这些文档是关于它们返回的内容(通常是更改集合的方法只返回None)。因此,没有理由期望它返回任何东西。