我有一堂课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'
为什么我会收到此错误,而字典中显然存在键?