diff --git a/xobjects/hybrid_class.py b/xobjects/hybrid_class.py index c42638b..9ce95ab 100644 --- a/xobjects/hybrid_class.py +++ b/xobjects/hybrid_class.py @@ -169,7 +169,7 @@ def __new__(cls, name, bases, data): setattr(new_class, pyname, _FieldOfDressed(fname, _XoStruct)) - new_class._fields = pynames_list + new_class._fields = [ff.name for ff in _XoStruct._fields] _XoStruct._DressingClass = new_class @@ -295,6 +295,9 @@ def to_dict(self, copy_to_cpu=True): defaults = {} for field in obj._XoStruct._fields: + if dft := getattr(self, f"_default_{field.name}", None): + defaults[field.name] = dft + continue name = obj._rename.get(field.name, field.name) try: defaults[name] = field.get_default()