クラスがあり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()リスト行のtoを呼び出すと、が発生し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__)
KeyError:'uid'
キーが辞書に明確に存在しているのに、なぜこのエラーが発生するのですか?