我正在尝试模拟我不久前学到的 Java toString 方法。我可能在这里偏离了基地,肯定有一种更简单的方法可以用一个简单的列表来完成我想要做的事情。我真正想做的是能够将对象附加到列表中,然后从列表中打印有关这些对象的特定特征。我还想跟踪对象的索引。到目前为止,这是我所拥有的,但是当我打印时,我没有错误,并且有一个空行,没有打印任何内容。class Character_list(): def __init__(self, list): self.list = []def toString(self): result = "" for i in self.list: result += self.list[i] return resultdef main(): x = Character_list([1, 2]) print(x.toString())main()
1 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
三件事:
首先,使用您传递给构造函数的参数来实际实例化您的对象
class Character_list():
def __init__(self, lst):
self.lst = lst # use the parameter! And don't use 'list' as a variable name
# or even better, use a shallow copy:
self.lst = list(lst)
其次,python 循环一般是for-each循环。这意味着您正在迭代元素,而不是索引。所以
for i in self.lst:
result += i
实际上会将列表元素(必须是字符串,否则使用:)附加result += str(i)到result.
第三,当在对象上使用内置函数时,会隐式调用Python 版本的toStringis__str__和str()。所以,例如
def __str__(self):
return ''.join(map(str, self.lst))
会做你想要的,但更普遍的是,例如当你打电话时
print(x)
添加回答
举报
0/150
提交
取消