元组不给改,会怎么样
试着改一个元组里的元素: t = (1, 2, 3) try: t[0] = 99 print("改成功了") except TypeError: prin
阅读更多 →
🔴 同样是排序,一个把原数据毁了
两个"排序"函数,各拿一份 [120, 80, 200, 150] 的副本去跑。跑完之后看看原来那两份变成什么样: A = [120, 80, 200, 150] LINE = 1
阅读更多 →
想「改」一份不可变数据,该怎么办
手里是一个元组,想得到一个多了一项的版本。做法是【0】。
阅读更多 →
不可变数据在并发下的好处是什么
多个地方同时读同一份不可变数据时,好处是【0】。
阅读更多 →
⚠️ 就地改一份数据,风险在哪
一个函数把传进来的列表就地排了序。风险是【0】。
阅读更多 →
「不可变」说的是什么
说一份数据是不可变的,意思是【0】。
阅读更多 →
自己写:把它写成纯的
照着 impure 的算法写一个纯版本,输出它的三个返回值,再确认外面那个列表一个都没多。
阅读更多 →
🔴 修掉可变默认参数
左边那个有坑的版本已经写好了。把右边修好——每次调用都该拿到一个新列表。两版各调三次,输出每次返回列表的长度。
阅读更多 →
🔴 返回值一样,不代表函数一样
两个函数,一个顺手往外面的列表里记了一笔,一个什么也没碰。各调三次,比一比返回值,再看看外面那个列表: LOG = [] def impure(a): LOG.append(a)
阅读更多 →
🔴 可变默认参数为什么危险
写 def f(x, box=[]) 这种默认值,危险在于【0】。
阅读更多 →