什么是打印实例变量的pyhthonic方式最多?

时间:2015-07-31 05:52:32

标签: python

我有一个包含x和y变量的节点对象。我将所有节点保存在名为nodelist的列表中。从nodelist打印所有节点坐标的最pythonic和简单方法是什么?

更具体地说,我有一个名为someclass的类

someclass.state
someclass.nodelist

我想在尽可能少的行中打印nodeList中节点的状态和坐标。

类似于:print self.state, (i.x, i.y for i in self.nodelist)

1 个答案:

答案 0 :(得分:2)

打印的pythonic方法是使用print和pythonic方式将对象表示为字符串(将要打印的内容)定义__str__(注意__unicode__是在python3中消失并且可能不再是pythonic,特别是当__str__将会这样做时(即不需要unicode支持))。另请注意,格式化字符串的新方法是使用str.format而不是使用百分比运算符 - 所以我使用它。

self的任何课程中:

def __str__(self):
     return "{0} {1}".format(self.state, (str(i) for i in self.nodelist))

以及任何类self.nodelist元素都在:

def __str__(self):
     return "{0}, {1}".format(self.x, self.y)

然后使用print(obj)

打印对象