New submission from Eric V. Smith <e...@trueblade.com>:
This is related to issue 44649. This is the simplest non-dataclasses case I could come up with. Given: class Example: __slots__ = ('a', 'b') def __init__(self, a): self.a = a obj = Example(42) print(obj.b) I get this in 3.10 and main: Traceback (most recent call last): File "C:\home\eric\local\python\cpython\testdc.py", line 7, in <module> print(obj.b) ^^^^^ AttributeError: b. Did you mean: 'b'? The error message is confusing. 3.8 gives: Traceback (most recent call last): File "testdc.py", line 7, in <module> print(obj.b) AttributeError: b I don't have 3.9 around to test with. Maybe don't print the "Did you mean" part if the suggestion is the same as the requested attribute? The fact that the instance variable isn't initialized is the actual error in issue 44649, and I'll fix it there. ---------- components: Interpreter Core messages: 397652 nosy: eric.smith, pablogsal priority: normal severity: normal status: open title: Confusing error with __slots__ type: behavior versions: Python 3.10, Python 3.11 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue44655> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com