扫码关注官方订阅号
RT
python 是否存在不能改变 key 的 dict?dict 的 keys 在定义的时候就规定
业精于勤,荒于嬉;行成于思,毁于随。
自己改写咯
覆盖 __setitem__ __delitem__ 方法
__setitem__
__delitem__
没听懂楼主意思,dict的key本身就不能被直接修改,除非先删除再增加,在新建一个dict时完全可以定义key啊
dict = {'k1' : 1, 'k2' : 2, 'k3' : 3}
在对象中使用__slots__属性。 __slots__会限制对象只能使用指定的那几个属性。
__slots__
>>> class SLT: __slots__ = ['a','b','c'] >>> slt=SLT() >>> slt.a=0 >>> slt.b Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> slt.b AttributeError: b >>> slt.b=99 >>> slt.b 99 >>> slt.d=111 Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> slt.d=111 AttributeError: 'SLT' object has no attribute 'd' >>> slt.x='xxx' Traceback (most recent call last): File "<pyshell#18>", line 1, in <module> slt.x='xxx' AttributeError: 'SLT' object has no attribute 'x'
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
自己改写咯
覆盖
__setitem____delitem__方法没听懂楼主意思,dict的key本身就不能被直接修改,除非先删除再增加,在新建一个dict时完全可以定义key啊
在对象中使用
__slots__属性。__slots__会限制对象只能使用指定的那几个属性。