python字典格式_python – 格式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'])
例如,它的工作原理.但是,如果我直接打印(c),它會說:
KeyError: ‘number’
我希望format()通過__getitem __()來提取它所需的屬性.
如何使它工作?
解決方法:
不,你必須使用** self并支持更多的映射方法.
但是,使用格式支持進行屬性訪問會更好:
def __str__(self):
return """
Commit {0.number} {0.sha}
Message {0.message}
Identity {0.identity}
""".format(self)
現在它將使用屬性訪問來查找從第一個位置參數到.format()的數字,消息等,這是self.
標簽:python,python-3-x
總結
以上是生活随笔為你收集整理的python字典格式_python – 格式self,这是一个字典的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ 各种求min/max方法效率测试
- 下一篇: python股票分析系统_熬了一晚上,小