从下面的代码中访问在ktext
块中定义的变量with-as
是否合法?
代码如下。
try:
with open("pub", "r") as f:
ktext = f.read().strip()
except:
ktext = ""
print(ktext)
最佳答案
是的,在Python中,变量作用域扩展到了块的外部(函数和类块除外)。这意味着您可以执行以下操作:
if True:
a = 1
a += 1
print(a) # 2
相同的原理适用于
with
块:with open('data.txt') as file:
data = file.read()
print(data)
请注意,如果引发异常,则不会分配变量(但在您的情况下,您已经使用except块中的
ktext = ""
进行了处理)。关于python - 在open as块中定义的变量是否可用于外部块中的代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55724595/