{0}占位符有什么意义

时间:2016-11-24 21:03:47

标签: python django tostring

所以我目前正在阅读一个django + angular教程,其中我的模型unicode函数就是这个

def __unicode__(self):
    return '{0}'.format(self.content)

我的问题是为什么使用这个占位符是必要的?我可以做到这一点并取得同样的结果吗?

def __unicode__(self):
    return self.content

content是一个TextField

2 个答案:

答案 0 :(得分:2)

从技术上讲,类可以选择格式化,但它需要:

>>> class A:
...     def __format__(self, format_spec):
...         return 'foo'
...     def __str__(self):
...         return 'bar'
...         
>>> str(A())
'bar'
>>> '{0}'.format(A())
'foo'

Here are some tasty docs.

答案 1 :(得分:0)

在这种情况下使用.format()的原因是始终以字符串的形式返回content的值,无论它是什么。例如:

>>> '{0}'.format(1)   # `int`
'1' 
>>> '{0}'.format(1.01)  # `float`
'1.01'
>>> '{0}'.format(u'Hello')  # `unicode string`
'Hello'

如果不这样做,您最终会发送相同的值,保留实际content的类型。

注意:我的回答是假设问题中存在拼写错误,您的意思是'{0}'.format(self.content)而不是'{0}.format(self.content)'