Add more tests. Fix code excerpt. (GH-25549) (GH-25550)

This commit is contained in:
Miss Islington (bot) 2021-04-22 20:26:56 -07:00 committed by GitHub
parent 34be48450f
commit 8db72cd342
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -953,6 +953,20 @@ The documentation shows a typical use to define a managed attribute ``x``:
def delx(self): del self.__x def delx(self): del self.__x
x = property(getx, setx, delx, "I'm the 'x' property.") x = property(getx, setx, delx, "I'm the 'x' property.")
.. doctest::
:hide:
>>> C.x.__doc__
"I'm the 'x' property."
>>> c.x = 2.71828
>>> c.x
2.71828
>>> del c.x
>>> c.x
Traceback (most recent call last):
...
AttributeError: 'C' object has no attribute '_C__x'
To see how :func:`property` is implemented in terms of the descriptor protocol, To see how :func:`property` is implemented in terms of the descriptor protocol,
here is a pure Python equivalent: here is a pure Python equivalent:
@ -1354,9 +1368,10 @@ Using the non-data descriptor protocol, a pure Python version of
"A doc for 'T'" "A doc for 'T'"
The code path for ``hasattr(obj, '__get__')`` was added in Python 3.9 and The code path for ``hasattr(type(self.f), '__get__')`` was added in
makes it possible for :func:`classmethod` to support chained decorators. Python 3.9 and makes it possible for :func:`classmethod` to support
For example, a classmethod and property could be chained together: chained decorators. For example, a classmethod and property could be
chained together:
.. testcode:: .. testcode::