python3:如何在类属性上使用for循环和if语句?

python3:如何在类属性上使用for循环和if语句?,python,python-3.x,if-statement,Python,Python 3.x,If Statement,我有以下课程: class equipment: def __init__(self, name, location, status): self.name = name self.location = location self.status=status class device(equipment): def __init__(self, name, location,status): super().__

我有以下课程:

class equipment:
    def __init__(self, name, location, status):
        self.name = name
        self.location = location
        self.status=status 

class device(equipment):
    def __init__(self, name, location,status):
        super().__init__(name, location,status)


device1 = device("device1 ", (5, 2), 0)
device2 = device("device2", (10, 2), 0)
device3 = device("device3", (15, 3), 0)
device4 = device("device4", (5, 5), 0)

all_devices = ['device1', 'device2', 'device3', 'device4']
基于另一个代码:我得到status_devices=[1,0,1,1],所以我想使用for循环和if语句更新原始状态(只打印status=1的设备)

这种方式给了我一个错误:str对象没有属性状态


谢谢

导致您提到的错误的问题是您

all_devices = ['device1', 'device2', 'device3', 'device4']
all_devices = ['device1', 'device2', 'device3', 'device4']
而不是

all_devices = [device1, device2, device3, device4]

(也就是说,您创建了一个字符串列表,而不是一个设备对象列表。)

您必须在
所有设备
变量中存储类
设备
的实例:

all_devices = [device1, device2, device3, device4]
不是字符串:

all_devices = ['device1', 'device2', 'device3', 'device4']