我有一堂课Commit
。
class Commit:
def __init__(self, uid, message):
self.uid = uid
self.message = message
def __str__(self):
print(self.__dict__)
return textwrap.dedent('''\
Commit: {uid}
{message}
''').format(self.__dict__)
这对我来说似乎是正确的;从调用None
的输出中可以看出,两个键都存在且非:print
{'message': 'Hello, world!', 'uid': 1}
但是,str.format()
对列表行的调用会引发KeyError
.
回溯(最近一次通话最后): 文件“../Pynewood/pnw”,第 7 行,在 cli(sys.argv) 文件“/Users/daknok/Desktop/Pynewood/pynewood/cli.py”,第 11 行,在 cli 打印(提交) 文件“/Users/daknok/Desktop/Pynewood/pynewood/commit.py”,第 14 行,在 __str__ ''').format(self.__dict__) 键错误:'uid'
为什么我会收到此错误,而字典中显然存在键?