我有一个包含x和y变量的节点对象。我将所有节点保存在名为nodelist的列表中。从nodelist打印所有节点坐标的最pythonic和简单方法是什么?
更具体地说,我有一个名为someclass的类
someclass.state
someclass.nodelist
我想在尽可能少的行中打印nodeList中节点的状态和坐标。
类似于:print self.state, (i.x, i.y for i in self.nodelist)
答案 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)