我有一个语句,它打印一个字符串,与一种化学物质及其所需的键值有关,如何打印键值对应的键名?你知道吗
def chemByString(chemName,chemicals,priority="echo"):
for chemical in chemicals:
chemDict = chemical.toDict(priority)
if chemDict["chemicalName"] == chemName
return chemical
return None
print str(chemByString('O2', allChemicals, priority="echo").chemicalName) + str("{chemicalName:<5s} {charge:<20s}{comment:<20s}".format(**chemByString('O2', allChemicals, priority="echo").toDict()))
输出:
{'tv': 'O2', 'echo': 'O2'} O2 0 O2
期望输出:
{'tv': 'O2', 'echo': 'O2'} O2 Charge 0 Comment O2
或者
Species Charge Comment
{'tv': 'O2', 'echo': 'O2'} O2 0 O2
可以使用list comprehension中的getattr()使用属性列表打印对象属性:
您可以以字符串格式提供它们
应该能带你去你想去的地方。你知道吗
编辑:如果你有一些完全通用的东西,你想应用到所有成员,你可以做一些奇怪的事情,比如:
不过,这并不像特例那样直观。你知道吗
您还可以在类上创建一个
__repr__
方法,这样就可以像您希望的那样打印它。见:Purpose of Python's __repr__相关问题 更多 >
编程相关推荐