我有一个带有属性的 Python 对象a
, b
, c
.
我仍然使用旧的字符串格式,所以我通常会手动打印这些:
print 'My object has strings a=%s, b=%s, c=%s' % (obj.a, obj.b, obj.c)
最近,我的字符串变得超长,我更愿意能够简单地将对象传递到字符串格式函数中,例如:
print 'My object has strings a=%a, b=%b, c=%c'.format(obj)
但是,语法不正确。这可能吗?
您可以使用.attribute_name
格式字段本身内的符号:
print 'My object has strings a={0.a}, b={0.b}, c={0.c}'.format(obj)
下面是一个演示:
>>> class Test(object):
... def __init__(self, a, b, c):
... self.a = a
... self.b = b
... self.c = c
...
>>> obj = Test(1, 2, 3)
>>> 'My object has strings a={0.a}, b={0.b}, c={0.c}'.format(obj)
'My object has strings a=1, b=2, c=3'
>>>
但请注意,执行此操作时,您确实需要对格式字段进行编号。另外,如您所见,str.format
函数的格式字段用大括号表示{...}
,不是%
sign.
欲了解更多信息,请参考以下内容格式化字符串语法 https://docs.python.org/2/library/string.html#formatstrings在Python中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)