我正在尝试为节点定义c类,如下所示:3, [5,8,2]
我做错了什么?
--------------
# Node Class
class Node():
def __init__(self,name, neighbors):
self.name = name
self.neighbors = []
self.n_records = 0
def __str__(self):
s = "{} (#{}): name: {:3}, neighbors: {}"
return s.format(self.name,self.neighbors)
def add_record(self, rec):
self.records.append(rec)
self.n_records += 1
IndexError Traceback (most recent call last) <ipython-input-18-6d6c9b659eeb> in <module>() 4 nodes = Node(1,[5,6]) 5 ----> 6 print(nodes) <ipython-input-17-f3f5914a055f> in __str__(self) 11 def __str__(self): 12 s = "{} (#{}): name: {:3}, neighbors: {}" ---> 13 return s.format(self.name,self.neighbors) 14 15 def add_record(self, rec): IndexError: tuple index out of range
答案 0 :(得分:0)
你的问题就在这一行
s = "{} (#{}): name: {:3}, neighbors: {}"
这为字符串格式化准备了一个字符串。
注意:每个&#34; {}&#34;没有数字或标识符在其中期望a
应该传递给format
的新位置参数。
在你的情况下,有4个这样的标记,所以一个人期望一个电话
格式如下:
s.format(argument_brace1, argument_brace2, argument_brace3, argument_brace4)
但是,您的实际调用仅提供其中两个标记的参数:
return s.format(self.name, self.neighbors)
其余2个标记的附加访问会引发IndexError
。
有关详细信息,请参阅documentation onstring formatting。