🐸

时光胶囊

Python 基础python-architect-25-the-time-capsule
奖励: 120 XP
|

我们在代码深处发现了一个 时光胶囊 (Time Capsule)

用老方法打开它(先 open()close())是有风险的。以此如果我们忘了把它重新锁好(close()),时间魔法就会泄漏出去!

我们需要一个咒语,在我们用完之后自动封印胶囊。

"With" 咒语

Python 有一个特殊的关键字叫 with。它就像一个临时的魔法护盾。

  1. 它打开文件。
  2. 让你完成工作。
  3. 无论发生什么,它都会自动关闭文件!
# "With" 上下文管理器
with open("capsule.txt", "r") as file:
  content = file.read()
  print(content)

# 看妈,没写 close()!
# 文件在这里已经被自动关闭了。
1
旧代码

看看 main.py。它使用的是旧的、不安全的方法。

2
重构

使用 with 语句重写代码。

3
缩进

记住:with 块里面的代码必须 缩进 (向右移动)。

这被称为 上下文管理器 (Context Manager)。它为你管理“上下文”(打开和关闭)。这是专业 Python 架构师的工作方式。

参考答案
点击展开
参考答案:
with open("capsule.txt", "r") as file:
  content = file.read()
  print("Capsule says: " + content)
高级技巧
想更进一步?点击展开

F. 为什么要用 "with"?

  • 安全:即使你的代码在块内部崩溃报错,Python 也保证文件会被关闭。
  • 整洁:代码更少,容易遗忘的事情也更少。
  • "上下文":就像租车一样。with 负责处理租赁合同和还车手续;你只需要开车。
Loading...
终端输出
Terminal
Ready to run...