format(self)
この場合、どのように機能させるのですか?
class Commit:
number = None
sha = None
message = None
identity = None
def __init__(self, raw, number):
r = raw.commits[number]
self.number = number
self.sha = r['sha']
self.message = r['message']
self.identity = raw.identities[r['identity']]
def __str__(self):
return """
Commit {number} {sha}
Message {message}
Identity {identity}
""".format(self)
def __getitem__(self, attr):
return getattr(self, attr)
def __contains__(self, attr):
return hasattr(self, attr)
次に、個々の属性にアクセスしようとすると
c = Commit(raw, 170)
print(c['sha'])
たとえば、それは機能します。ただし、print(c)
直接言うと、次のようになります。
KeyError: '数値'
format()
を介して必要な属性を取得することを期待していました__getitem__()
。
それを機能させる方法は?