我一直在阅读Python标准库的第6部分。我来到以下字符串格式:
"Weight in tons {0.weight}" # 'weight' attribute of first positional arg
我不明白在.format
括号中放置什么来用权重替换weight
。如果有人能提供帮助,我们将不胜感激。
作为尝试,我尝试了以下操作,但失败了:
"Weight in tons {0.weight}".format({'weight':10})
错误:
AttributeError: 'dict' object has no attribute 'weight'
答案 0 :(得分:9)
该语法适用于属性,而不是键。如果要从字典中打印元素,请使用:
print("Weight in tons {0[weight]}".format({'weight':10}))
以下是.
语法的有效用法:
class Dummy:
def __init__(self):
self.weight = 10
d = Dummy()
print("Weight in tons {0.weight}".format(d))
最后,而不是:
"Weight in tons {0.weight}".format({'weight':10})
...您可能打算使用命名参数语法:
print("Weight in tons {weight}".format(weight=10))
答案 1 :(得分:4)
最好像这样解压缩字典
"Weight in tons {weight}".format(**{'weight':10})
# Weight in tons 10
这样您就可以使用相应的键名来访问这些值,例如{weight}
。