Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.2k
Open
Description
Bug report
Bug description:
The new error messages for nested attributes will execute descriptors/property code
Modified example from the change log. Gave the property a side effect (print)
fromdataclassesimportdataclassfrommathimportpi@dataclassclassCircle:radius:float@propertydefarea(self)->float:print("Property 'area' accessed")returnpi*self.radius**2classContainer:def__init__(self,inner:Circle)->None:self.inner=innercircle=Circle(radius=4.0)container=Container(circle)print(container.area)
Output
Property 'area' accessedTraceback (most recent call last): File "<stdin>", line 1, in <module> print(container.area) ^^^^^^^^^^^^^^AttributeError: 'Container' object has no attribute 'area'. Did you mean '.inner.area' instead of '.area'?Expected would be to not execute the code. This does not happen when theContainer class has a property suggested
PR incoming
CPython versions tested on:
CPython main branch
Operating systems tested on:
Windows