diff --git a/src/psygnal/_group_descriptor.py b/src/psygnal/_group_descriptor.py index 23c320d3..bd391cd0 100644 --- a/src/psygnal/_group_descriptor.py +++ b/src/psygnal/_group_descriptor.py @@ -314,7 +314,9 @@ def _setattr_and_emit_(self: object, name: str, value: Any) -> None: sig_name = f"{name}{signal_suffix}" group: SignalGroup | None = getattr(self, signal_group_name, None) - signal: SignalInstance | None = group.signals.get(sig_name, None) + signal: SignalInstance | None = ( + None if group is None else group.signals.get(sig_name, None) + ) # don't emit if the signal doesn't exist or has no listeners if group is None or signal is None or len(signal) < 2 and not len(group): return super_setattr(self, name, value)