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' accessed
Traceback (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 the Container class has a property suggested
PR incoming
CPython versions tested on:
CPython main branch
Operating systems tested on:
Windows
Linked PRs
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)
Output
Expected would be to not execute the code. This does not happen when the
Containerclass has a property suggestedPR incoming
CPython versions tested on:
CPython main branch
Operating systems tested on:
Windows
Linked PRs