使用类成员在python中格式化字符串

时间:2014-02-04 13:27:04

标签: python

考虑以下代码:

class Foo:
  def geta(self):
    self.a = 'lie'
    return 'this is {self.a}'.format(?)

我应该写什么而不是问号,以便正确格式化字符串?

2 个答案:

答案 0 :(得分:11)

您可能正在寻找的是

'this is {0.a}'.format(self)
'this is {.a}'.format(self)
'this is {o.a}'.format(o=self)
'this is {self.a}'.format(self=self)

但请注意,您至少缺少班级中的某个方法。

直接在班级范围内,没有self

答案 1 :(得分:3)

括号内包含的引用是指一个数字,表示传递给format的参数的索引,或者是指向一个名为call的命名参数的名称。像那样:

class Foo:
  def geta(self):
    self.a = 'lie'
    return 'this is {self.a}'.format(self=self)