From: Raymond Hettinger Date: Tue, 11 Jan 2005 16:14:55 +0000 (+0000) Subject: Add duck-typing to the glossary. X-Git-Tag: v2.4.1c1~85 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=edce3137060e7783818b6c6888da120909cd95b1;p=thirdparty%2FPython%2Fcpython.git Add duck-typing to the glossary. --- diff --git a/Doc/tut/glossary.tex b/Doc/tut/glossary.tex index b0ac97f552d6..7f04a79c34b9 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