mirror of
https://github.com/python/cpython.git
synced 2025-11-27 05:44:16 +00:00
Remove a broken example of extreme backward compatibility; it is
simply not relevant any more. Closes SF bug #595032.
This commit is contained in:
parent
80c02af345
commit
5c08a99b77
1 changed files with 0 additions and 21 deletions
|
|
@ -4018,27 +4018,6 @@ code that is byte-compiled together. The same restriction applies to
|
||||||
\code{getattr()}, \code{setattr()} and \code{delattr()}, as well as
|
\code{getattr()}, \code{setattr()} and \code{delattr()}, as well as
|
||||||
when referencing \code{__dict__} directly.
|
when referencing \code{__dict__} directly.
|
||||||
|
|
||||||
Here's an example of a class that implements its own
|
|
||||||
\method{__getattr__()} and \method{__setattr__()} methods and stores
|
|
||||||
all attributes in a private variable, in a way that works in all
|
|
||||||
versions of Python, including those available before this feature was
|
|
||||||
added:
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
class VirtualAttributes:
|
|
||||||
__vdict = None
|
|
||||||
__vdict_name = locals().keys()[0]
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.__dict__[self.__vdict_name] = {}
|
|
||||||
|
|
||||||
def __getattr__(self, name):
|
|
||||||
return self.__vdict[name]
|
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
|
||||||
self.__vdict[name] = value
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Odds and Ends \label{odds}}
|
\section{Odds and Ends \label{odds}}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue