2024-03-29 09:14:46 发布
网友
我不明白下面代码的结果。为什么结果是None?你知道吗
None
m = {(1,2):1.0, (5,4):0.5, (3,4):0.75} print(m.clear()) result: **None**
但如果我写的是
m.clear() print(m) result : **{}**
我还有别的结果。你知道吗
您正在打印m.clear()的返回值,它返回None。它返回None,因为.clear()方法在适当的位置清除字典。你知道吗
m.clear()
.clear()
按照惯例,任何在默认Python类型上改变可变结构的方法都返回None。例如,这同样适用于list.sort()或set.add()。你知道吗
list.sort()
set.add()
第二个示例不打印m.clear()的返回值。它会在你清空字典后打印出来。你知道吗
print(m.clear())打印调用m.clear()返回的值。print m打印对象m;显然是两种截然不同的东西,因此它们产生不同的输出也就不足为奇了。你知道吗
print(m.clear())
print m
m
字典类型的documentation只是表示clear:
clear
Remove all items from the dictionary.
它就是这么做的。它没有记录为返回任何内容,而所有确实返回某些内容的方法的所有文档都明确说明了它们返回的内容(通常更改集合的方法只返回None)。所以没有理由指望它会有回报。你知道吗
您正在打印
m.clear()
的返回值,它返回None
。它返回None
,因为.clear()
方法在适当的位置清除字典。你知道吗按照惯例,任何在默认Python类型上改变可变结构的方法都返回
None
。例如,这同样适用于list.sort()
或set.add()
。你知道吗第二个示例不打印
m.clear()
的返回值。它会在你清空字典后打印出来。你知道吗print(m.clear())
打印调用m.clear()
返回的值。print m
打印对象m
;显然是两种截然不同的东西,因此它们产生不同的输出也就不足为奇了。你知道吗字典类型的documentation只是表示
clear
:它就是这么做的。它没有记录为返回任何内容,而所有确实返回某些内容的方法的所有文档都明确说明了它们返回的内容(通常更改集合的方法只返回
None
)。所以没有理由指望它会有回报。你知道吗相关问题 更多 >
编程相关推荐