在 Python 中打印类对象列表
Print a list of class objects in Python
在类上定义__repr__()
方法以打印类对象列表。该__repr__()
方法由repr()
函数调用,并将为列表中的每个对象调用。
主程序
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __repr__(self): return self.name alice = Employee('Alice', 100) print(alice) # 👉️ Alice bob = Employee('Bobbyhadz', 100) print(bob) # 👉️ Bobbyhadz result = [alice, bob] print(result) # 👉️ [Alice, Bobbyhadz]
我们定义了__repr__()
打印类对象列表的方法。
_
_ repr _ _
方法由函数调用,通常repr()
用于获取字符串,该字符串可用于使用eval()
函数重建对象。
确保从该方法返回一个字符串
__repr__()
,否则TypeError
会引发 a。如果您需要返回一个整数,请使用str()
该类将其转换为字符串。
主程序
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __repr__(self): return str(self.salary) # 👈️ convert to string alice = Employee('Alice', 100) print(alice) # 👉️ Alice bob = Employee('Bobbyhadz', 100) print(bob) # 👉️ Bobbyhadz result = [alice, bob] print(result) # 👉️ [Alice, Bobbyhadz]
另一种方法是访问列表中每个项目的属性并打印结果。
主程序
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary alice = Employee('Alice', 100) bob = Employee('Bobbyhadz', 100) result = [alice, bob] # 👇️ ['Alice', 'Bobbyhadz'] print([obj.name for obj in result])
请注意,我们没有定义__repr__()
方法。
我们使用列表理解来迭代对象列表。
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。
在每次迭代中,我们访问name
对象的属性并返回结果。
最后一步是将列表传递给print()
函数。