遍历对象列表不能正确显示的问题通常是由于对象的字符串表示不正确所导致的。以下是一些解决方法的示例代码:
方法一:重写对象的__str__方法
class MyObject:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}"
# 创建对象列表
objects = [MyObject("Alice", 25), MyObject("Bob", 30), MyObject("Charlie", 35)]
# 遍历对象列表并显示
for obj in objects:
print(obj)
方法二:使用lambda函数
class MyObject:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建对象列表
objects = [MyObject("Alice", 25), MyObject("Bob", 30), MyObject("Charlie", 35)]
# 遍历对象列表并显示
for obj in objects:
print(lambda o: f"Name: {o.name}, Age: {o.age}")(obj)
方法三:使用getattr函数
class MyObject:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建对象列表
objects = [MyObject("Alice", 25), MyObject("Bob", 30), MyObject("Charlie", 35)]
# 遍历对象列表并显示
for obj in objects:
print(f"Name: {getattr(obj, 'name')}, Age: {getattr(obj, 'age')}")
这些方法都可以确保遍历对象列表时,正确显示对象的信息。您可以根据自己的需求选择其中一种方法来解决问题。