summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2005-01-11 16:11:13 (GMT)
committerRaymond Hettinger <python@rcn.com>2005-01-11 16:11:13 (GMT)
commitd4f5b07e5d8cb4d3c8d0da07858738b63c7c00c2 (patch)
treef0c9451584cfd4b85a7adf174b5926941acc3c75
parentfaa10ebdd0c250a59b9073c6e0829c42fedfac43 (diff)
downloadcpython-d4f5b07e5d8cb4d3c8d0da07858738b63c7c00c2.zip
cpython-d4f5b07e5d8cb4d3c8d0da07858738b63c7c00c2.tar.gz
cpython-d4f5b07e5d8cb4d3c8d0da07858738b63c7c00c2.tar.bz2
Add duck-typing to the glossary.
-rw-r--r--Doc/tut/glossary.tex11
1 files changed, 11 insertions, 0 deletions
diff --git a/Doc/tut/glossary.tex b/Doc/tut/glossary.tex
index b0ac97f..7f04a79 100644
--- a/Doc/tut/glossary.tex
+++ b/Doc/tut/glossary.tex
@@ -85,6 +85,17 @@ use of \class{dict} much resembles that for \class{list}, but the keys
can be any object with a \method{__hash__()} function, not just
integers starting from zero. Called a hash in Perl.
+\index{duck-typing}
+\item{duck-typing}
+Pythonic programming style that determines an object's type by inspection
+of its method or attribute signature rather than by explicit relationship
+to some type object ("If it looks like a duck and quacks like a duck, it
+must be a duck.") By emphasizing interfaces rather than specific types,
+well-designed code improves its flexibility by allowing polymorphic
+substitution. Duck-typing avoids tests using \function{type()} or
+\function{isinstance()}. Instead, it typically employs
+\function{hasattr()} tests or {}\emph{EAFP} programming.
+
\index{EAFP}
\item[EAFP]
Easier to ask for forgiveness than permission. This common Python