クラスがあり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'
キーが辞書に明確に存在しているのに、なぜこのエラーが発生するのですか?