From d4f5b07e5d8cb4d3c8d0da07858738b63c7c00c2 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Tue, 11 Jan 2005 16:11:13 +0000 Subject: [PATCH] Add duck-typing to the glossary. --- Doc/tut/glossary.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Doc/tut/glossary.tex b/Doc/tut/glossary.tex index b0ac97f552d..7f04a79c34b 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