Python 3.x 中的 `as` 命令是做什么用的?

3
我曾多次见到它,但从未理解Python 3.x中as命令的作用。你能用简单易懂的英语解释一下吗?

1
这是一个保留关键字,至少在py2.6+版本中是如此。 - Ashwini Chaudhary
2个回答

9

这并不是一个命令,而是作为with语句的一部分使用的关键字:

with open("myfile.txt") as f:
    text = f.read()
as 后面的对象将被赋值为 with 上下文管理器处理的表达式的结果。
另一个用途是重命名导入的模块:
import numpy as np

现在你可以使用名称np代替numpy

第三种用法是为您提供访问Exception对象的方式:

try:
    f = open("foo")
except IOError as exc:
    # Now you can access the Exception for more detailed analysis

谢谢,但我不知道with语句是做什么的。你能解释一下吗? - user2820691
我在官方的Python文档中找不到关于"as"语句的任何技术参考。有人知道有相关资料吗? - Brian H.
@BrianHVB:由于它不是一个“独立的”关键字,你需要查看withtry/exceptimport的文档。 - Tim Pietzcker

5

在多种情况下,它是用于对象命名的关键字。

from some_module import something as some_alias
# `some_alias` is `some_module.something`

with open("filename") as f:
    # `f` is the file object `open("filename")` returned

try:
    Nonsense!
except Exception as e:
    # `e` is the Exception thrown

第二和第三种情况并不真正是重命名,对吗? - Tim Pietzcker
@TimPietzcker:是的,我认为这只是命名问题。 - Kabie
那么在“重命名”之前,它的名称应该是什么? - Tim Pietzcker
1
@TimPietzcker 你是唯一一个提到重命名的人。Kabie只是说这是关于命名的事情。 - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接