Add property, setter and deleter.

This commit is contained in:
mzr1996 2022-05-10 21:08:29 +08:00
parent 4bf54066c9
commit ce2b40133b
2 changed files with 42 additions and 2 deletions

View File

@ -113,11 +113,35 @@ class ClsDataSample(BaseDataElement):
Number]) -> None:
"""Set the gt_label data."""
label = format_label(value, self.get('num_classes'))
self.set_field(label, 'gt_label')
self.gt_label = label
def set_pred_label(
self, value: Union[np.ndarray, torch.Tensor, Sequence[Number],
Number]) -> None:
"""Set the pred_label data."""
label = format_label(value, self.get('num_classes'))
self.set_field(label, 'pred_label')
self.pred_label = label
@property
def gt_label(self):
return self._gt_label
@gt_label.setter
def gt_label(self, value: LabelData):
self.set_field(value, '_gt_label', dtype=LabelData)
@gt_label.deleter
def gt_label(self):
del self._gt_label
@property
def pred_label(self):
return self._pred_label
@pred_label.setter
def pred_label(self, value: LabelData):
self.set_field(value, '_pred_label', dtype=LabelData)
@pred_label.deleter
def pred_label(self):
del self._pred_label

View File

@ -86,3 +86,19 @@ class TestClsDataSample(TestCase):
def test_set_pred_label(self):
self._test_set_label('pred_label')
def test_del_gt_label(self):
data_sample = ClsDataSample()
self.assertNotIn('gt_label', data_sample)
data_sample.set_gt_label(1)
self.assertIn('gt_label', data_sample)
del data_sample.gt_label
self.assertNotIn('gt_label', data_sample)
def test_del_pred_label(self):
data_sample = ClsDataSample()
self.assertNotIn('pred_label', data_sample)
data_sample.set_pred_label(1)
self.assertIn('pred_label', data_sample)
del data_sample.pred_label
self.assertNotIn('pred_label', data_sample)