What does the property descriptor does in the following code ?
property
class MyInt: def __init__(self, val): self._val = val @property def val(self): return self._val
It defines a private attribute
It transform a method with not argument into a read-only attribute
It defines a class attribute
It defines a static method