python 如何从列表中打印对象的属性

tsm1rwdh  于 2023-01-12  发布在  Python
关注(0)|答案(2)|浏览(132)

如果我在Python中有一个列表,其中包含具有类属性的对象,我如何打印对象的列表,而只打印特定的属性?
例如:
我有一个属性为NAME的对象,其中NAME = to Cat。我有另一个属性为NAME = to Dog的对象。

  • 两个对象都在列表中,我想打印所有对象。NAME * only *

下面是一些示例代码(写得很差,但写得很快)

class play_object():
    def __init__(self, weight, size, name):
        self.weight = weight
        self.size = size
        self.name = name

objects = []

car = play_object(6, 10, "Car")
cat = play_object(0.5, 1, "Cat")

objects.append(car)
objects.append(cat)

print(objects)

这将输出:

[<__main__.play_object object at 0x000001D0714053D0>, <__main__.play_object object at 0x000001D0712ACF90>]

修订守则,使之:

print(objects.name)

输出中的结果:

Traceback (most recent call last):
  File "C:/Users//AppData/Local/Programs/Python/Python311/Test2.py", line 15, in <module>
    print(objects.name)
AttributeError: 'list' object has no attribute 'name'

那么,只打印列表中对象的选定属性的正确方法是什么呢?

ubof19bj

ubof19bj1#

当您创建car和cat作为play_object类的对象时,使用对象名称和属性来获取数据

print(car.name)
print(cat.name)

不使用:

print(object.name)

对象为列表

62lalag4

62lalag42#

首先你需要迭代列表中的元素,然后你需要打印对象的每个属性。

for object in objects:
    print(i.name)

你的错误:你正在尝试获取列表的名称。但是你的对象有名称属性而不是列表。所以你需要打印对象的名称

相关问题