如何通过OOP方法将列表转换为连续字符串
问题根因
你自定义的__str__方法属于NewClass类,而你调用__str__的s_1是Python原生列表类型的实例,走的是列表默认的字符串转换逻辑,自然输出列表格式。
修正代码
你需要先将原始列表传入NewClass完成实例化,再打印该实例即可触发自定义的字符串拼接逻辑:
class NewClass: def __init__(self, array): self.array = array def __str__(self): return "".join(str(i) for i in self.array) s_1 = ["Stack", "over", "flow", 3] # 实例化自定义类,传入目标列表 custom_obj = NewClass(s_1) # 打印实例会自动调用__str__方法,输出拼接后的字符串 print(custom_obj)
运行后输出结果为:Stackoverflow3,符合需求。
内容的提问来源于stack exchange,提问作者Orel Jaraian
相关产品推荐
相关产品推荐

