python对象属性随机删除自身
我在python对象中遇到了一个问题,我同时创建和迭代了许多对象 对象总是使用正确的属性创建的,但是当我迭代这些对象时,我检查对象中的某个属性,该特定属性从对象中随机删除,然后我得到一个错误,即该对象没有该属性 代码: 错误:“TracableTruck”对象没有属性“vehicle\u status” 请注意,这段代码在95%的时间里都适用于我,尽管所有对象都具有相同的结构,但对于随机对象也是如此 经过大量的调试,我只是不明白为什么会发生这种情况。该对象是正确创建的,如果我在迭代之前打印它,它确实具有“vehicle_status”属性,但在迭代之后,该属性从对象中消失 例如: 创建时的对象: {“对象ID”:55,“车辆类型”:“卡车”,“OTS”:“2020-03-10 16:07:16”,“车道ID”:2.0,“车辆状态”:“活动”} 迭代后的对象: {“对象ID”:55,“车辆类型”:“卡车”,“OTS”:“2020-03-10 16:07:16”,“车道ID”:2.0} 我希望比我更精通python的人能帮助我。 谢谢 编辑对象定义:python对象属性随机删除自身,python,python-3.x,python-object,Python,Python 3.x,Python Object,我在python对象中遇到了一个问题,我同时创建和迭代了许多对象 对象总是使用正确的属性创建的,但是当我迭代这些对象时,我检查对象中的某个属性,该特定属性从对象中随机删除,然后我得到一个错误,即该对象没有该属性 代码: 错误:“TracableTruck”对象没有属性“vehicle\u status” 请注意,这段代码在95%的时间里都适用于我,尽管所有对象都具有相同的结构,但对于随机对象也是如此 经过大量的调试,我只是不明白为什么会发生这种情况。该对象是正确创建的,如果我在迭代之前打印它,它
class TrackableTruck:
def __init__(self, object_ID, vehicle_type, OTS, lane_ID, vehicle_status):
# info from tracking server
self.object_ID = object_ID
self.vehicle_type = vehicle_type
self.OTS = OTS
self.lane_ID = lane_ID
self.vehicle_status = vehicle_status
检查和更改车辆状态的代码:
d = pickle.loads(full_msg[self.HEADERSIZE:])
d = json.loads(d)
vehicle_type = str(d['vehicle_type'])
vehicle_lane = int(d['lane_ID'])
vehicle_id = int(d['object_ID'])
vehicle_status = d['vehicle_status']
if vehicle_lane == 1:
trackable_vehicle = self.streetLane_1.get_vehicle(vehicle_id)
if trackable_vehicle is None:
self.streetLane_1.add_vehicle(d)
else:
trackable_vehicle.vehicle_status = 'DEAD'
对象创建代码:
def object_decoder(self,json_obj):
return TrackableTruck(int(json_obj['object_ID']), json_obj['vehicle_type'], json_obj['OTS'], json_obj['lane_ID'], json_obj['vehicle_status'])
def add_vehicle(self, json_obj):
trackable_vehicle = self.object_decoder(json_obj)
self.lane_vehciles[int(trackable_vehicle.object_ID)] = trackable_vehicle
请向我们展示更多的代码,尤其是init的类定义。在这个过程中,您是否在代码的其他地方使用该属性?因为你一定在某个地方做了些什么,事情并不是随机发生的。你确定你不是在self.lane\u vehciles.items()中把
上的车辆拼错了self.lane\u vehciles.items():
我们需要一个解决这个问题的机会。这包括足够的(理想情况下最小的)代码来实际再现错误,以及产生错误的输入、预期输出和实际输出(包括完整的回溯,如果适用)。在问题的主体部分,所有内容均为文本。根据提供的信息,解决方案可能与其他任何解决方案一样容易成为“火星人”。请提供“错误:'TracableTruck'对象没有“vehicle_status”属性”的完整回溯。
def object_decoder(self,json_obj):
return TrackableTruck(int(json_obj['object_ID']), json_obj['vehicle_type'], json_obj['OTS'], json_obj['lane_ID'], json_obj['vehicle_status'])
def add_vehicle(self, json_obj):
trackable_vehicle = self.object_decoder(json_obj)
self.lane_vehciles[int(trackable_vehicle.object_ID)] = trackable_vehicle