python - 是否可以在 python 函数中强制数据不变性?
问题描述
假设我定义了一个列表对象,并且只希望它在我定义的函数中是只读的。在 C++ 中,您可以使用 const 引用来执行此操作。有没有办法用python函数做到这一点?这对于编写“pythonic”代码是否有意义,或者我只是试图错误地应用 C++ 范例?
解决方案
使用tuple
, 代替:
>>> hash([1,2,3])
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
hash([1,2,3])
TypeError: unhashable type: 'list'
>>> hash((1,2,3))
2528502973977326415
>>>
hash
可以定义它是否可变,并产生一个TypeError: unhashable type
如果它是可变的错误,例如list
s,OTOHtuple
会返回一些大数字(在这种特殊情况下不需要关心),try
except
如果你想我们可以使用a:
try:
hash((1,2,3))
print('Immutable object')
except:
print('Mutable object')
哪个输出:
Immutable object
推荐阅读
- python - Python集成:计算曲线下的面积
- mern - 如何使用 MERN 堆栈获取已在列表中选择的卡的 ID?
- django - 基于应用程序的自定义范围
- sql - 如何获得每个状态的第一行?
- java - 两个 Windows 进程的故事:通过 TaskKill 杀死 Windows 进程仅在某些时候有效
- python - 使用 API 将文件上传到谷歌驱动器的问题 - HTTP 错误 404
- debugging - 对于谷歌表格来说,脚本可能太新了吗?
- api - Blue Prism 网络服务调用和 csv 下载
- xml - 如何使用 XSLT 进行迭代
- python - 加速复杂的 python 数据帧转置