🔴 返回值一样,不代表函数一样

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

两个函数,一个顺手往外面的列表里记了一笔,一个什么也没碰。各调三次,比一比返回值,再看看外面那个列表:

LOG = []

def impure(a):
    LOG.append(a)        # ← 顺手改了外面的东西
    return a * 10

def pure(a):
    return a * 10

r1 = [impure(x) for x in (1, 2, 3)]
r2 = [pure(x) for x in (1, 2, 3)]
same = "一样" if r1 == r2 else "不一样"
print(same + "/" + str(len(LOG)))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论