对可变对象的疑虑点,请各位大佬指点迷津,多谢!
tuple的元素只能容纳不可变对象,且其中的元素可以是列表list,因为实际存放的是列表(可变对象)的地址,只要这个可变列表的地址不变,就算列表中的元素变化了,也不能说是元组元素的变动。dict的key不能是可变元素,因为需要用key去hash取值。如果此时key为列表(可变对象),则字典会报错:TypeError: unhashable type: 'list'。 那么问题来了:
同样是可变元素list,为什么在元组tuple里面作为元素值是合法的、是取地址的、是不可变的,但是在字典dict里面作为key的值就是非法的、是取值的、是可变的。
这样的设计,感觉不符合使用上的一致性或直观的理解性吧,因为规则不一致。
慕田峪7331174
烙印99
慕虎7371278
随时随地看视频慕课网APP
相关分类