使用相关表达式的代码:
def read_file(self,file_name):
try:
with open(file_name,'r') as file:
data=file.read()
return data.split()
except IOError as e:
print("Could not read file:{0.filename}".format(e))
sys.exit()
这是如何工作的? {0.filename}.format(e)
的含义是什么?为什么我们使用{0.filename}
而非{1.filename}
?
答案 0 :(得分:2)
这实质上意味着获取位置0
的位置参数(在format(e)
中,e
是零位置arg)并获取在其上定义的filename
属性:< / p>
print("No such file: {0.filename}".format(e))
类似于:
print("No such file: {0}".format(e.filename))
它不是1.filename
,因为格式没有使用位置1
的参数调用,另一个例子可能会帮助你更多:
print("{0}{1.filename}".format("No such File: ", e))
此处{0}
会抓取"No such File: "
而{1.filename}
会抓取e.filename
并将其添加到结果字符串中。